当前位置: 首页 > 后端技术 > Python

爬虫实战:urllib2应用是如何实现对某个贴吧数据的针对性爬取,并完成代码封装的实现?

时间:2023-03-26 12:41:41 Python

1.导入项目需要的扩展库1#-*-coding:UTF-8-*-23#importurllib参数数据编码4importurllib5#importurllib2执行核心爬虫6importurllib278#importUserAgent生成UA9fromfake_useragentimportUserAgent2,执行网页请求函数1#执行网页请求2defreq_url(self,full_url):3headers={4#随机生成一个User-Agent5'User-Agent':self.user_agent.random6}7#构造Request请求对象8request=urllib2.Request(headers=headers,url=full_url)9#执行request10response=urllib2.urlopen(request)11returnresponse.read()3.保存网页下载的html源码1#保存爬取的html源码2defsave_doc(self,html_doc,file_name):3print"Startsavingthefile:",file_name4withopen(file_name,'w')asf:5f.write(html_doc)6print"Completefile:",file_name,"Save"4.组装完整的爬虫地址,参数组装等1#构造爬虫环境并执行2defrun_spider(self):3forpageinrange(self.begin,self.end+1):4#计算页码5pn=(page-1)*506#编码中文参数7name=urllib.urlencode({'kw':self.tieba_name})8#组装完整的爬虫地址9fullurl=self.url+name+'&pn='+str(pn)10#根据页数定义文件名11file_name=str(page)+'.html'12#执行爬虫网页请求13html_doc=self.req_url(full_url)14#保存文件15self.save_doc(html_doc,file_name)5.用户自定义输入参数1#用户输入相关数据2url='http://tieba.baidu.com/f?'3tieba_name=raw_input('请输入要抓取的贴吧名称:')4begin=int(raw_input('请输入起始页码:'))5end=int(raw_input('请输入结束页数:'))实力的提升最重要,输入公众号回复:“贴吧爬虫源码”,获取贴吧爬虫源码,快去刷题吧~