[英]How to scrape multiple pages in HTML table with same URL with Python?
我正在尝试从以下公共网站上抓取招聘信息:
https://newbraunfels.tedk12.com/hire/Index.aspx
我知道这里有一些类似的问题,但我已经关注了所有这些问题,但由于我的 javascript/html 技能有限,我似乎无法弄清楚。
我可以毫无问题地获得第一页,但似乎无法访问以下三页。
我最好的尝试如下,但它仍然只返回列表的第一页:
import requests
from bs4 import BeautifulSoup
soup = BeautifulSoup(requests.get(url).content, "html.parser")
def load_page(soup, page_num):
payload = {
"__EVENTTARGET": "",
"__EVENTARGUMENT": "PageIndexNumber${}".format(page_num),
}
for inp in soup.select("input"):
payload[inp["name"]] = inp.get("value")
soup = BeautifulSoup(requests.post(url, data=payload).content, "lxml")
return soup
# print hospitals from first page:
for jobs in soup.select("table"):
print(jobs.text)
# load second page
soup = load_page(soup, 2)
for jobs in soup.select("table"):
print(jobs.text)
提前谢谢你。
在这种情况下,一种更简单的方法可能是使用 get 变量直接查询每个页面。 “StartIndex”变量应该是 50 的倍数,因为每页显示 50 个结果。 对于要抓取的每一页结果,只需将其增加 50。
第 1 页: https ://newbraunfels.tedk12.com/hire/Index.aspx?JobListAJAX=Paging&StartIndex=0&ListID=JobList&SearchString=
第 2 页: https ://newbraunfels.tedk12.com/hire/Index.aspx?JobListAJAX=Paging&StartIndex=50&ListID=JobList&SearchString=
第 3 页: https ://newbraunfels.tedk12.com/hire/Index.aspx?JobListAJAX=Paging&StartIndex=100&ListID=JobList&SearchString=
..ETC。
返回的对象是 XML,因此您还需要将文档树导入到 beautiful soup 中,以便您可以正常定位元素。 请参阅此处的示例:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.