2016-12-27 11 views
1

私はウェブサイト(www.hotpads.com)からいくつかのプロパティ情報を掻き集めようとしています。Python、BeautifulZoup、Selenium webscrape

私は多くのリスティング(例:link)を持つURLをロードしています。それから各プロパティに行き、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

driver.get(url)requests.get(url)は、2つの異なるGET要求(の間に相関がないですようあなたはこのような方法で、Selenium + requestsを使用することはできませんそれら)とtime.sleep(10)response = requests.get(url)に影響しません。

driver.get(url) 
time.sleep(10) 
html = driver.page_source 

soup = bs4.BeautifulSoup(html, "html.parser") 
+0

私は:また、彼らが次のようにページのソースを取得するための初期HTMLコード

てみに存在しないとして、あなたがrequests.get(url)でそれらを得ることができないので、そのターゲット要素を動的にいくつかのJavaScriptによって生成されているように見えます馬鹿。私は2つのスクリプトを一緒に使用して書いたことがあり、あなたが指定した方法に常に従っています。私はBeautifulSoupのみのスクリプトを変更するための基礎として使用していて、これをやっていないことに気付かなかった。ありがとうございました – HenryM