Python BeautifulSoup看不到元素,即使它出现在页面上

Python BeautifulSoup看不到元素,即使它出现在页面上,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我正试图从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-2

我正试图从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)
为什么即使该元素已经加载到页面上,soup也看不到该元素


它是否在某种类型的容器中,我需要以不同的方式进行刮取?

在初始HTML页面加载到浏览器后,通过javascript创建id为
清单-18354577
的元素
Requests
只是一个HTTP客户端,而不是一个成熟的浏览器引擎,因此它不会执行最终获取该元素的Javascript。来自
请求
的响应只是页面的初始HTML(不包括
列表-18354577
)。

请求
不等待js,您可以使用加载所有页面,然后使用
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
#以及许多其他数据

你能把
回复的内容打印出来吗?文本
和你的问题对应起来吗?Jared,它很长,甚至不能放入终端。但是上面发布的是一个有效的代码,请尝试一下好吗?请看下面我的答案-如果您检查
response.text
的内容,我想您会看到它不包括
清单-18354577
。这是否回答了您的问题?德鲁塔,这是一个Django网络应用程序。既然Selenium需要下载webdriver,我有没有办法在web应用程序中使用它?比如在某个地方托管webdriver?