python爬虫04

来源:互联网 发布:如何将照片导入mac 编辑:程序博客网 时间:2024/05/20 22:35

不多说了,上代码,看注释吧,写的够详细了

# encoding: utf-8#加载bs4、urllib2from bs4 import BeautifulSoupimport urllib2import codecsimport reimport sysimport types#定义一个方法,方法的作用提交url并获取到到此url的html页面源码def header (url):    user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'    header = {'User-Agent':'user_agent'}    #把url、header穿过去    re = urllib2.Request(url,headers=header)    respone = urllib2.urlopen(re,'html.parser')    #获取html代码,保存到htmlcode,一个字符串    htmlcode = respone.read()    return htmlcode#定义一个把爬取到的内容,写入到文本的方法def file_save(file_name,text):    #由于开始文本是不存在的,所以使用w,进行检查如果不存在就创建,如果是r,那么就是追加    f = open(file_name,'w')    #把list写入到file_name里面,并且list进行换行,注意的是用join,据说效率比+ 高    f.write('\n'.join(text))    #关闭文件    f.close()#定义一个方法,接受三个参数、url、开始也、结束页def load_url(url,begin_page,end_page):    #加载这个,是解决utf8的问题    reload(sys)    sys.setdefaultencoding('utf8')    #拼接url,重点重点,搞了好长时间    for i in range(begin_page,end_page+1):        zcurl = url + str(i)        zc_html_code = header(zcurl)        #这里是一个列表了        st = st_html(zc_html_code)        print st        file_name = str(i) + '.txt'        file_save(file_name,st)#定义爬取规则的方法def st_html(text):    soup = BeautifulSoup(text,'html.parser')    #这段代码的意思,先用find查找第一个table,然后在table里面查找target    find_html = soup.find('table','table_body').find_all(attrs={'target':'_blank'})    #find_html = soup.find_all(attrs={'target':'_blank'}).string    #因为要return回去,所以先创建一个空的列表    list = []    for i in find_html:        #注意。.get_text获取文本,如果获取url,参照上一篇的文章,i['herf]        a = i.get_text()        list.append(a)    #返回列表,load_url要调用    return listurl = 'https://www.chinabidding.cn/search/searchzbw/search2?rp=22&categoryid=1&keywords=轨道交通&page='begin_page = input("请输入开始页的id:")end_page = input("请输入结束页的id:")load_url(url,begin_page,end_page)

原创粉丝点击