Python,BeautifulZoup,Selenium webscrape

时间:2016-12-27 12:17:41

标签: javascript python selenium

我试图从网站(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)

1 个答案:

答案 0 :(得分:0)

您无法使用Selenium + requestsdriver.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")