关于pytyon3爬虫,我已经达到了为工作服务器的水平了。最近就想让代码运行到服务器上,通过表单提交一些参数,然后就可以完成爬取内容的任务了。这样下来,还可以把我做出来的东西开放给更多人使用。搜索了一下,用python3搞web开发大家都是用框架的,对比了一下,最终选择了bottle。选择bottle的原因很简单,这个框架比较简单。

要把本地代码部署到web服务器上,其实主要解决输入和输出问题就可以了。即如何通过web输入参数,如何通过web展现结果。下面是代码:

from bottle import route, request,run,template
import requests,bs4
@route('/doname')
def doname():
    return '''
    <title>doname</title>
        <form action="/doname" method="post">
            doname: <input name="doname" type="text" />
            <input value="查询" type="submit" />
        </form>
    '''

@route('/doname', method='POST')
def do_doname():
    doname = request.forms.get('doname')
    ym='vdamai.com'
    url='https://www.baidu.com/s?wd=site%3A'+ym+'&pn=0&oq=site%3A'+ym+'&tn=baiduhome_pg&ie=utf-8&rsv_idx=2&rsv_pq=ebe7015c001095fb&rsv_t=bc2a0Yo%2FuVsax57qceikq5TMf%2FS%2F4jDrBd%2B9mzhRLZz2IVjkJeFTFiQRb9jmXz6PoWMz'
    html=requests.get(url).text
    bs=bs4.BeautifulSoup(html,'html.parser')
    ms=bs.select('.c-span21 c-span-last')
    s=''
    for m in ms:

        s=s+m

    return template('''
        <br>你查询的域名是:{{doname}}
        <br>查询结果是:{{tx}}
        ''',doname=doname,tx=s
        )
    
run(host='0.0.0.0', port=80,debug=True)

安装完bottle,直接运行上面的代码就可以看到结果了。安装bottle自己百度一下。这里要提及的是安装pip install xx要修改为pip3 install xx,当然你首先要把pip升级为pip3。如果有任何疑问,欢迎留言交流。