我试图从网站(www.hotpads.com)上搜集一些房产信息。
我正在加载一个包含多个商家信息的网址(例如link),然后尝试进入每个媒体资源并获取更多详细信息以便下载到Excel中。
如果我检查'我可以看到href链接的元素用一类' Linker'一旦页面加载但是如果我用Selenium加载页面,确保它已加载,然后搜索这些链接,那里没有。
我做错了什么?你能给我一个如何解决这个问题的指针吗?请注意,我正在等待加载页面。如果我右键单击并查看链接,我可以看到我之后的内容,但如果我查看页面源,则链接不在那里。
在获取和访问各个链接方面,这是我的代码:
driver.get(url)
time.sleep(10)
response = requests.get(url)
html = response.content
soup = bs4.BeautifulSoup(html, "html.parser")
data = soup.findAll('a', attrs={'class': 'Linker'})
if DEBUG:
for d in data:
print url_base+d['href']
for d in data:
if DEBUG: print d
#set the link value and open it
link = url_base+d['href']
driver.get(link)
答案 0 :(得分:0)
您无法使用Selenium
+ requests
,driver.get(url)
和requests.get(url)
是两个不同的GET
请求(它们之间没有相关性)和time.sleep(10)
不会影响response = requests.get(url)
。此外,目标元素似乎是由某些JavaScript
动态生成的,因此您无法使用requests.get(url)
获取它们,因为它们不在初始HTML
代码中
尝试获取以下网页来源:
driver.get(url)
time.sleep(10)
html = driver.page_source
soup = bs4.BeautifulSoup(html, "html.parser")