Python爬虫中爬取贴吧内容的方法
这篇文章主要介绍Python爬虫中爬取贴吧内容的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
爬取贴吧内容
先了解贴吧url组成:
每个贴吧url都是以'https://tieba.baidu.com/f?'开头,然后是关键字 kw=‘’贴吧名字‘’,再后面是 &pn=页数 (pn=0第一页,pn=50第二页,依次类推)
更多关于Python爬虫的相关知识,可以关注亿速云的Python爬虫栏目。
1.先写一个main,提示用户输入要爬取的贴吧名,并用urllib.urlencode()进行转码,然后组合url
2.接下来,写一个百度贴吧爬虫接口tiebaSpider(),需要传递3个参数给这个接口, 一个是main里组合的url地址,以及起始页码和终止页码,表示要爬取页码的范围。
3.前面写出一个爬取一个网页的代码。然后,将它封装成一个小函数loadPage(),供我们使用。
4.将爬取到的每页的信息存储在本地磁盘上,我们可以简单写一个存储文件的接口writePage()
#_*_coding:utf-8_*_importurllib,urllib2defloadPage(url,filename):#根据url发送请求,获取服务器响应文件print'正在下载'+filenameheaders={'User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/60.0.3112.101Safari/537.36'}request=urllib2.Request(url,headers=headers)content=urllib2.urlopen(request).read()returncontentdefwritePage(html,filename):#将html内容写入到本地print'正在保存'+filenamewithopen(unicode(filename,'utf-8'),'w')asf:f.write(html)print'_'*30deftiebaSpider(url,beginPage,endPage):#贴吧爬虫调度器,负责组合处理每个页面的urlforpageinrange(beginPage,endPage+1):pn=(page-1)*50filename='第'+str(page)+'页.html'fullurl=url+'&pn='+str(pn)#printfullurlhtml=loadPage(fullurl,filename)writePage(html,filename)if__name__=='__main__':kw=raw_input('请输入贴吧名:')beginPage=int(raw_input('请输入起始页:'))endPage=int(raw_input('请输入结束页:'))url='https://tieba.baidu.com/f?'key=urllib.urlencode({'kw':kw})fullurl=url+keytiebaSpider(fullurl,beginPage,endPage)
通过输入想要搜索的贴吧名字,爬取内容并保存到本地
以上是Python爬虫中爬取贴吧内容的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。