智策网分享如何利用python抓取百度贴吧相关信息

智策网分享如何利用python抓取百度贴吧相关信息

今天智策网给大家分享一下如何利用python抓取百度贴吧相关信息

为了演示,我就随便在iphone贴吧找了一个内容相对丰富的帖子。

智策网只是演示,所以我选择抓取

回帖时间

回帖内容

回帖时
在这里插入图片描述
这3个信息,其实比较聪明的人应该知道,智策网这个可以做信息聚合,标题+这些回复内容不就是一篇原创信息。

先分析一下思路:

1、获取单个页面的源代码

2、大概看一下页数,当然我们也可以用正则获取

这里举例,我看了一下有733页的信息,演示我就抓取前100页吧。

3、信息量比较大,这里我们可能会利用到多线程的抓取

4、获取每一页所要获取的内容,这里用传统正则可能稍微复杂一点,我们用神器xpath

5、最后把获取到的内容整理一下写入到文本文件contents.txt里

好了,代码智策网直接免费分享给大家:

#--coding:utf8--#抓取百度贴吧回帖时间,回帖人,回帖内容信息http://tieba.baidu.com/p/3522395718from lxml import etreefrom multiprocessing.dummy import Pool as ThreadPoolimport requests,jsonimport sysreload(sys)sys.setdefaultencoding(‘utf8’)def towrite(contentdict): f.writelines(u’回帖时间:’+str(contentdict[‘topic_reply_time’])+’\n’) f.writelines(u’回帖内容:’+str(contentdict[‘topic_reply_content’])+’\n’) f.writelines(u’回帖时人:’+str(contentdict[‘user_name’])+’\n\n’)def spider(url): html=requests.get(url) selector=etree.HTML(html.text) content_field=selector.xpath(’//div[@class="l_post j_l_post l_post_bright "]’) item={} for each in content_field: reply_info=json.loads(each.xpath(’@data-field’)[0]) author=reply_info[‘author’][‘user_name’] content=each.xpath(‘div[@class=“d_post_content_main”]/div/cc/div[@class=“d_post_content j_d_post_content clearfix”]’)[0] content=content.xpath(‘string()’) reply_time=reply_info[‘content’][‘date’] item[‘user_name’]=author item[‘topic_reply_content’]=content item[‘topic_reply_time’]=reply_time towrite(item)if name==“main”: pool=ThreadPool(4) f=open(‘content.txt’,‘a’) page=[] for i in range(100): url=“http://tieba.baidu.com/p/3522395718?pn=”+str(i) page.append(url) result=pool.map(spider,page) pool.close() pool.join() f.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值