python 培训之爬虫

1. 输入文件为

 fufang_list.txt 

yaofang_a    aaiwan    阿艾丸
yaofang_a    aaiwulingsan    阿艾五苓散
yaofang_a    acaitang    阿菜汤
yaofang_a    afurongjiu    阿芙蓉酒
yaofang_a    aqietuoyao    阿伽陀药
yaofang_a    aweichubisan    阿魏搐鼻散
yaofang_a    aweigao    阿魏膏
yaofang_a    aweigaoyao    阿魏膏药
yaofang_a    aweihuapigao    阿魏化痞膏
yaofang_a    aweihuapisan    阿魏化痞散
yaofang_a    aweijikuaiwan    阿魏积块丸
yaofang_a    aweileiwansan    阿魏雷丸散
yaofang_a    aweilizhongwan    阿魏理中丸
yaofang_a    aweiliangjiangwan    阿魏良姜丸
yaofang_a    aweiruanjiansan    阿魏软坚散
yaofang_a    aweisan    阿魏散
yaofang_a    aweishexiangsan    阿魏麝香散
yaofang_a    aweitongjingwan    阿魏通经丸
yaofang_a    aweiwan    阿魏丸
yaofang_a    aweiwanlinggao    阿魏万灵膏

2. 爬虫脚本

  get_tcmdata.py

#!/usr/bin/python 
#coding:utf8
from __future__ import print_function
import click
import urllib2
import re
from bs4 import BeautifulSoup
import sys
reload(sys)
import socket
sys.setdefaultencoding("utf8")
socket.setdefaulttimeout(20)


base_url = "http://www.zysj.com.cn/zhongyaofang/{}.html"
headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}

@click.command()
@click.argument('input1')
@click.option("--pos",'-pos')
def query_tcm_info(input1,pos):
    """
    the script will ignore the previous pos lines
    """
    zhongyaofang_list = open(input1)
    pos = int(pos)
    num = 0
    if pos:
        for i in range(0,pos):
            zhongyaofang_list.readline()
    num = num + pos
    for zhongyaofang_info in zhongyaofang_list:
        num = num +1
        zhongyaofang_info_list = zhongyaofang_info.strip("\n").split("\t")
        url_id = "/".join(zhongyaofang_info_list[0:2])
        file_out = "_".join(zhongyaofang_info_list[0:2])
        file_out_name = "_".join([file_out,str(num)])
        output_file = open(file_out_name+".txt","w")
        query_url = base_url.format(url_id)
        req = urllib2.Request(query_url,headers = headers)
        content = urllib2.urlopen(req,timeout=20).read()
        soup = BeautifulSoup(content)
        words = soup.getText()        
        output_file.write(words)


if __name__ == "__main__":
    query_tcm_info()

3. 运行脚本命令

 python  get_tcmdata.py fufang_list.txt --pos 0

4. 简单百度爬虫

#!/usr/bin/python
#coding:utf8
from __future__ import print_function
import sys
reload(sys)
sys.setdefaultencoding("utf8")
import urllib2

request = urllib2.Request(url)
request.add_data('a',"1")
request.add_heder('User-Agent',"Mozilla/5.0")
response = urllib2.urlopen(request)
cont = response.read()
print(cont)

 

m = requests.post("http://www.megabionet.org/tcmid/ingredientsearch/?name=adonitol")

m.url

posted @ 2016-07-30 16:44  xiaojikuaipao  阅读(1236)  评论(0编辑  收藏  举报