gpt4 book ai didi

python - 在 AJAX 请求完成后抓取页面

转载 作者:太空宇宙 更新时间:2023-11-04 05:57:46 26 4
gpt4 key购买 nike

我正在抓取:

http://www.wotif.com/hotel/View?hotel=W3830&page=1&adults=2&startDay=2014-11-08&region=1&descriptionSearch=true#property-reviews

使用以下代码:

hotel_page  = requests.get(hotel_url).text
hotel_page_soup = BeautifulSoup(hotel_page)

但是,这不包括 Guest Review部分,原因是它是在页面加载后通过 AJAX 调用加载的。

问题:如何在所有 AJAX 调用完成后才抓取页面?

最佳答案

你需要调用这个 URL以及确保 X-Requested-WithXMLHttpRequest

URL="http://www.wotif.com/review/fragment?propertyId=W3830&limit=5"

headers={"X-Requested-With":"XMLHttpRequest",
"User-Agent":"Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36"}

r=requests.get(URL,headers=headers)

#response here will be in json format
#Page source can be extracted using key `html'`
response=r.json()['html']
soup=BeautifulSoup(response)
reviews=soup.find(class_="review-score review-score-large").text
print reviews

Out[]:u'\n\n4.4\nOut of 5\n\n\n'

print reviews.strip()

Out[]:u'4.4\nOut of 5'

关于python - 在 AJAX 请求完成后抓取页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26819838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com