python爬取豆瓣小组_python爬取豆瓣小组700+话题加回复啦啦啦python open file with a variable name...

需求:爬取豆瓣小组所有话题(话题title,内容,作者,发布时间),及回复(最佳回复,普通回复,回复_回复,翻页回复,0回复)

解决:1. 先爬取小组下,所有的主题链接,通过定位nextpage翻页获取总过700+条话题;

2. 访问700+ 链接,在内页+start=0中,获取话题相关的四部分(话题title,内容,作者,发布时间),及最佳回复、回复;

3. 在2的基础上,判断是否有回复,如果有回复才进一步判断是否有回复翻页,回复翻页通过nextpage 获取start=100、start=200的页;

4. 进入下一个爬取函数,将抓取的回复 续写 到2 中的文件;

解决思路:

Before:一开始建立2个文件,article.txt 用来存储所有话题相关的内容(700+话题、作者信息);

同时,建立以title命名的回复文件;

After:统一建立以话题title命名的文章,先写入文章相关内容,再续写回复;这样方便读取;

遇到的坑:

1. 要获取某个div下直接的text,div.span下的text,div.h下的text:

——有2个解决方法:

A. 通过xpath   //text,意思是获取div 下的所有text文件;

B. 通过css 拼接,逗号隔开即可:

2. 巩固了不同函数之间通过meta传递参数的方法:

3. python open file with a variable name

f = open('%s.txt' % title_end,'a')

a:  续写

4.去掉 str 中的空格,换行等符号

# 去掉在x左右的空白,\t,\n和\r字符.

x1 = x.strip(' \t\n\r')

5 . strip 去掉数据中的\r,''.join 将列表转回字符串;

# 先将文章中的\r 都去掉,有些单独的'\r' 就变成了空的列表元素:'',再用if 来判断下就好了

artical_end = []

for x in article:

x1 = x.replace('\r','')

if x1 != '':

artical_end.append(x1)

# 将artical_end 列表 转为字符串

ar =''.join(artical_end)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值