gpt4 book ai didi

python - BeautifulSoup 看不到 element ,即使它存在于页面上

转载 作者:行者123 更新时间:2023-11-28 22:17:41 24 4
gpt4 key购买 nike

我正在尝试从 Airbnb 抓取列表。每个列表都有自己的 ID。但是,下面代码的输出是None:

import requests, bs4

response = requests.get('https://www.airbnb.pl/s/Girona--Hiszpania/homes?refinement_paths%5B%5D=%2Fhomes&query=Girona%2C%20Hiszpania&checkin=2018-07-04&checkout=2018-07-25&allow_override%5B%5D=&ne_lat=42.40450221314142&ne_lng=3.3245690859736214&sw_lat=41.97668610374056&sw_lng=1.7960961855829964&zoom=10&search_by_map=true&s_tag=nrGiXgWC')
soup = bs4.BeautifulSoup(response.text, "html.parser")

element = soup.find(id="listing-18354577")
print(element)

为什么汤看不到这个元素,即使它已经加载到页面上?

它是否位于我需要以不同方式抓取的某种类型的容器中?

最佳答案

请求不要等待js,您可以使用selenium加载所有页面,然后使用bs4例如,这可以工作:

import requests, bs4
from selenium import webdriver

# put the path to chromedriver
driver = webdriver.Chrome('path/to/chromedriver')
website = "https://www.airbnb.pl/s/Girona--Hiszpania/homes?refinement_paths%5B%5D=%2Fhomes&query=Girona%2C%20Hiszpania&checkin=2018-07-04&checkout=2018-07-25&allow_override%5B%5D=&ne_lat=42.40450221314142&ne_lng=3.3245690859736214&sw_lat=41.97668610374056&sw_lng=1.7960961855829964&zoom=10&search_by_map=true&s_tag=nrGiXgWC"
driver.get(website)
html = driver.page_source
soup = bs4.BeautifulSoup(html, "html.parser")

element = soup.find(id="listing-18354577")
print(element)

输出

<div class="_1wq3lj" id="listing-18354577"> ...  #and many other data

关于python - BeautifulSoup 看不到 element ,即使它存在于页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51117692/

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