beautiful soup find_all()查找丢失部分内容
本帖最后由 罗同学 于 2020-10-12 16:22 编辑帮女票爬一个小说(网上找不到资源),某乎连在的那种,这一页手动查看应该是有5个class = 'ContentItem-title'的标签的,可以从里面获取每一章的链接,但是不知道为啥每次find_all()只能返回前两个,后面的就给吞了,换别的页面也是只能找到前两个。求大佬帮助。
再默默问一嘴、正文里面带链接是会被和谐么、前面发了几次带链接的都发不出去,然后在“我的帖子”里面还会显示,但是帖子打不开。链接放1楼了。 链接:https://www.zhihu.com/people/meng-wa-83-63/posts?page=3 这样可以了,用正则。。。。。。。。。。beautifulsoup不知道怎么用,正则有时更方便
import requests
import re
url = 'https://www.zhihu.com/people/meng-wa-83-63/posts?page=3'
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36 Edg/86.0.622.38'}
response = requests.get(url=url, headers=headers)
html_str = response.content.decode()
partten = r'"content":"(.*?)","commentCount"'
data = re.findall(partten, html_str)
# print(data)
# print(len(data))
with open('test.txt', 'w', encoding='utf-8') as f:
for i in data:
a = i.replace(r'\u003Cp\u003E', '\n').replace(r'\u003C\u002Fp\u003E', '\n').replace(
r'\u003Cp class=\"ztext-empty-paragraph\"\u003E\u003Cbr\u002F\u003E', '\n')
f.write(a)
f.write('\n')
f.write('\n')
疾风怪盗 发表于 2020-10-12 17:17
这样可以了,用正则。。。。。。。。。。beautifulsoup不知道怎么用,正则有时更方便
大佬、刚跑了一下代码、这个是直接保存了小说、是想爬那个链接里面有的好几章的地址、正则太难了、但还是谢谢大佬。 罗同学 发表于 2020-10-12 17:31
大佬、刚跑了一下代码、这个是直接保存了小说、是想爬那个链接里面有的好几章的地址、正则太难了、但还是 ...
你确定你获取的网页信息中有你要的数据?你看到额网页源码和python获取额,不一定是一模一样的,你要在python获取的源码里找数据
只找到两个链接,另外两个链接没有获取到,所以你find_all也没找到
link_parrten=r'class="ContentItem-title"><a href="//(.*?)" target="_blank"'
link_data=re.findall(link_parrten, html_str)
print(link_data)
['zhuanlan.zhihu.com/p/73599879', 'zhuanlan.zhihu.com/p/72621342'] 疾风怪盗 发表于 2020-10-12 17:41
你确定你获取的网页信息中有你要的数据?你看到额网页源码和python获取额,不一定是一模一样的,你要在 ...
F12查看网页代码的时候确实是有的 罗同学 发表于 2020-10-12 17:42
F12查看网页代码的时候确实是有的
你看到额网页源码和python获取额,不一定是一模一样的!
这个是一定要注意的
页:
[1]