十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
成都创新互联专注于桐乡网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供桐乡营销型网站建设,桐乡网站制作、桐乡网页设计、桐乡网站官网定制、重庆小程序开发服务,打造桐乡网络公司原创品牌,更为您提供桐乡网站排名全网营销落地服务。这篇文章主要介绍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 _*_ import urllib,urllib2 def loadPage(url,filename): #根据url发送请求,获取服务器响应文件 print '正在下载' + filename headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36'} request = urllib2.Request(url,headers = headers) content = urllib2.urlopen(request).read() return content def writePage(html,filename): #将html内容写入到本地 print '正在保存' + filename with open(unicode(filename,'utf-8'),'w') as f: f.write(html) print '_' * 30 def tiebaSpider(url,beginPage,endPage): #贴吧爬虫调度器,负责组合处理每个页面的url for page in range(beginPage,endPage + 1): pn = (page - 1) * 50 filename = '第' + str(page) + '页.html' fullurl = url + '&pn=' + str(pn) # print fullurl html = 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 + key tiebaSpider(fullurl,beginPage,endPage)
通过输入想要搜索的贴吧名字,爬取内容并保存到本地
以上是Python爬虫中爬取贴吧内容的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!