2017-04-05 18 views
-3

""から "Saudi Sim Card"のようなリンクをすべて抽出しようとしています。私はWebページをスクロールするためにSelenium Webドライバを使用していますが、すべてのリンクを抽出できません。エラーが表示されます "タイプのオブジェクトは何もhref属性がありません"任意の提案ですか?セレンときさげ enter image description hereWeb Scraping、無限スクロールとリンクの抽出

from PageScroller import WebPageScroller 
import bs4 as bs 

sourceUrl='https://www.pakwheels.com/forums/c/travel-n-tours' 

#----------------------- Scrolling to the bottom of page and getting source code --------------------------------------# 

scrollObject=WebPageScroller 
pageSource=scrollObject.getScrolledPageSource(scrollObject,sourceUrl) 

# ------------------------------------- Getting links ---------------------------------- # 
soup = bs.BeautifulSoup(pageSource, 'lxml') 

blogUrls=[] 
for url in soup.find_all('a'): 

    if((url.get('href').find('/forums/t/')!=-1) and (url.get('href').find('about-the-travel-n-tours-category')==-1) and (url.get('href').find('/forums/t/topic/')==-1)): 
     blogUrls.append(url.get('href')) 
     print(url.get('href'))  
print(len(blogUrls)) 
+1

このサイトは、コードを投稿し、結果を表示し、特定の質問をして動作します。 – RobertB

+0

質問を編集しました。今はっきりしていますか? –

+0

画像を直接アップロードする特権はまだありません。画像をリンクとして追加することしかできません。どのようにその特権を得ることができますか? –

答えて

0

一般的にひどいですし、オッズはスリム・ツー・なしあなたは無限スクロールに対処する方法を見つけることができますされています。

このサイトのJSONエンドポイントは基本的にhttps://www.pakwheels.com/forums/c/travel-n-tours/l/latest.json?_=<uts>です(<uts>はUnixタイムスタンプ)。

基本的に、これはどのように動作するのですか? Chrome DevToolsまたはFirebugを開き、フォーラム画面を読み込みます。 Networkタブをご覧ください。 latest.json?_=1491493915518のようなファイルXHRがあります。クリックして。

Request URLは、https://www.pakwheels.com/forums/c/travel-n-tours/l/latest.json?_=1491493915518と表示されます。これがあなたのエンドポイントです。

今、あなたが必要とするすべては、Unixタイムスタンプと数行のコードです:

import requests 

current_uts = from_some_unix_timestamp_source 
response = requests.get('https://www.pakwheels.com/forums/c/travel-n-tours/l/latest.json?_={}'.format(current_uts)) 
print(response.json()) 

そして、あなたはそのページ上のすべてのJSON表現を取り戻します。より新しいタイムスタンプを使用して同じスクリプトを再実行すると、新しいフォーラムスレッドが取得されます。古いスレッドを取得する(またはフォーラム全体をスクラップする)場合は、古いUnixタイムスタンプを使用して時間を遡ることもできます。私はあなたにこれをどのようにしてより強固なものにするかを理解するためにそれを残しておきます。

関連する問題