0

我正在学习 BeautifulSoup 并尝试加载网页的内容。我试图通过更深入地获取内容HTML tagsby inspect element

我使用不同的代码片段来显示和检查我是否能够成功检索内容。

以下代码片段很好地产生了结果:

from bs4 import BeautifulSoup
import requests

root = 'https://www.quora.com/topic/Graduate-Record-Examination-GRE-1'
r = requests.get(root)

soup = BeautifulSoup(r.text,'html.parser')

#**The following worked yielded some results :**

#1
a = soup.find_all('div',{'class':'feed'})
print(a)

#2
b = soup.find_all('div',{'class':'ContentWrapper'})
print(b)

#3
c = soup.find_all('div',{'class':'ContentWrapper'})
print(c)

#4
d = soup.find_all('div',{'class':'feed'})
print(d)

#5
e = soup.find_all('div',{'class':'TopicFeed'})
print(e)

但是,在深入了解之后,以下内容并没有产生任何结果:

f = soup.find_all('div',{'class':'paged_list_wrapper'})
print(f)

它打印:[]

里面的内容/HTML 代码<div class='paged_list_wrapper'>没有被打印出来。为什么 ?

4

1 回答 1

2

该站点可以配置为根据用户代理发送不同的页面。我遇到了和你一样的问题。它返回一个空列表。在标题中添加通用用户代理为我解决了这个问题。

from bs4 import BeautifulSoup
import requests
root = 'https://www.quora.com/topic/Graduate-Record-Examination-GRE-1'
headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.' }
r = requests.get(root,headers=headers)
soup = BeautifulSoup(r.text,'html.parser')
f = soup.findAll('div',{'class':'paged_list_wrapper'})
print(f)
于 2018-12-22T13:30:42.357 回答