最近,被逼无奈开始自学python爬虫。爬取微博网页版话题下的发布微博内容数据,发现有的微博需要点击展开全文按钮才能获得全文数据,否则只有部分数据。探索了一下发现大多都是selenium+python的代码,在这儿保存一个自己解决的BeautifulSoup下展开全文的方法。
for i in range(0,len(data)):
if data[i].select("a[action-type='fl_unfold']")!=[]:
content = data[i].find_all("p",style="display: none")
if content[0].get_text().replace("\/r\/n", "").strip().endswith('收起全文d'):
nr_info = content[0].get_text().replace("\/r\/n", "").strip()
nr = filter_tags(db.escape_string(emoji.demojize(nr_info)))
print(nr)
else:
nr_info=soup.select('div > div.card-feed > div.content > p.txt') #微博内容
if len(nr_info)>0:
nr_info = nr_info[0].get_text().replace("\/r\/n", "").strip()
nr = filter_tags(db.escape_string(emoji.demojize(nr_info)))
print(nr)
else:
print("内容为空")
学习参考的内容:(浏览器收藏夹快放不下了)
Python中使用Beautiful Soup库的超详细教程 - 知乎
https://www.jb51.net/article/209456.htm
selenium+python抓取微博时遇到“展开全文”_m0_37435073的博客-CSDN博客
|