2017-03-29 13 views
0

私は、すべて同じレイアウトのページにつながる一連のURLを実行する簡単な方法を見つけようとしています。 1つの問題は、元のリストではURLがhttpであるが、その後はhttpsにリダイレクトされるということです。私はそれがページから情報を引き出す際に問題を引き起こすかどうかはわかりません。私はChromeのインスペクタを使用するとページの構造を見ることができますが、関連するリンクを取得するようにコードを設定しようとすると、私は空になります(文字通り)。私が使用している最も一般的なコードは次のとおりです。私は私が働くかもしれないと思うもので動作するようにしようとしてきたこれまで新たなんだということPython - ウェブサイトからのメールを取得するための美味しいスープ

a|{} 

を考える:生成

soup = BeautifulSoup(urllib2.urlopen('https://ngcproject.org/program/algirls').read()) 
links = SoupStrainer('a') 
print links 

mail = soup.find(attrs={'class':'tc-connect-details_send-email'}).a['href'] 

spans = soup.find_all('span', {'class' : 'tc-connect-details_send-email'}) 
lines = [span.get_text() for span in spans] 
print lines 

が、これらはいずれか何も得られません。私も試してみました。

私は自分のコードに問題があると想定していますが、データがスクレイプされないように隠されているとは限りません。理想的には、各URLのデータをCSVファイルに渡したいが、今はコードが正しい情報を実際に取得していることを確認する必要がある。どんな提案も歓迎!

+0

これは機能しない理由は、コンテンツがレンダリング時に角で塗りつぶされるためです。 –

+0

つまり、* eg *セレンのような動的クロールツールを使用する必要があります。 – Kanak

答えて

0

Google ChromeではCtrl + Uを押すか、右クリック>ソースを表示します。 このページはjavascriptなどで表示されます。 urllibはあなたが探しているものを表示/ダウンロードすることはできません。 自動ブラウザー(Selenium - 最も人気がある)を使用する必要があり、Google Chrome/Firefoxまたはヘッドレスブラウザー(PhantomJS)で使用できます。

それから、Seleniumから情報を取得して保存しておいて、それに合わせて操作することができます。

関連する問題