[python]BeautifulSoup4爬虫解析网页中data-*标签的问题

图片说明
我想要解析出图中的链接,通过先识别 li 定位。可是查看soup的文本,所有data-* 都没有解析出来
代码如下

 keywords = input('输入关键词PLZ')
res = requests.get('https://www.bing.com/search?q='+str(keywords)+'&qs=n&form=QBLH&scope=web&sp=-1&pq=abc&sc=8-5&sk=&cvid=3FE7B447AE744DD1AF25B5919EE1B675')
try:
    res.raise_for_status()
except Exception as ecp:
    print('There is an Exception:',ecp)

soup = bs4.BeautifulSoup(res.text,'html.parser')
ol = soup.find('ol',id='b_results')
linkElement = soup.find_all(attrs={'data-bm':'7'})

结果linkElement为空

2个回答

先看你的soup 中拿到了什么数据,怀疑API返回的内容是异步的,你没有拿到网页的内容。如果这样,你需要用selenium等webdriver方式去拿页面内容

sinat_38823778
sinat_38823778 但是为啥会导致内容异步呢?我查了一下没找到解释。。因为我不太懂网站建设
大约 3 年之前 回复
sinat_38823778
sinat_38823778 谢谢啊!soup中也没有一切data-*标签的内容,这个异步数据的问题我还不懂。。刚开始学爬虫。谢谢哦!我再去学你提到的这两个方式!
大约 3 年之前 回复

网页源码中的text信息有的是通过js得到的(也就是异步请求),BeautifulSoup是获取不到这部分信息的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问