我试图通过从Yocket收集数据来找到一些有关入读特定大学的学生的GPA,GRE和工作经历的统计数据。虽然我的代码在第一页(https://yocket.in/applications-admits-rejects/588-new-york-university/2)上正常工作,但是当我尝试单击下面的导航栏(https://yocket.in/applications-admits-rejects/588-new-york-university/2?page=2)来抓取后面的页面时,该代码不起作用。经过分析,我发现接收到的后续页面的HTML内容不正确,即接收到的html内容与其他页面相对应。另外,接收到的内容对于page = 3,page = 4等是不正确的。爬网的内容仅对page = 1正确。此URL适用于NYU,但是对于其他所有大学的URL,在page = 2上收到的内容不正确的行为相同 但是,我只想承认身份。因此,需要找到一种导航页面2中不同页面的方法。网址应为/ 2?page = section。
这是我的代码:
import requests
from bs4 import BeautifulSoup
page_num=2
url="https://yocket.in/applications-admits-rejects/588-new-york-university/2?page=" + str(page_num)
page = requests.get(url)
soup=BeautifulSoup(page.content)
print(soup.prettify())
答案 0 :(得分:0)
发出警告,因为没有明确定义任何解析器,只需将 features =“ lxml” 传递给BeautifulSoup构造函数,它将解决此问题。
import requests
from bs4 import BeautifulSoup
page_num=2
url="https://yocket.in/applications-admits-rejects/588-new-york-university/2?page=" + str(page_num)
page = requests.get(url)
soup=BeautifulSoup(page.content,features = "lxml")
print(soup.prettify())
希望有帮助!