我想知道如何使用美麗的湯/請求來抓取多個不同的網站,而不必一遍又一遍地重複我的代碼。如何抓取多個網站來查找常見單詞(BeautifulSoup,Requests,Python3)
這裏是我的代碼現在:
import requests
from bs4 import BeautifulSoup
from collections import Counter
import pandas as pd
Website1 = requests.get("http://www.nerdwallet.com/the-best-credit-cards")
soup = BeautifulSoup(Website1.content)
texts = soup.findAll(text=True)
a = Counter([x.lower() for y in texts for x in y.split()])
b = (a.most_common())
makeaframe = pd.DataFrame(b)
makeaframe.columns = ['Words', 'Frequency']
print(makeaframe)
我所試圖做的理想是爬行5個不同的網站,發現所有的這些網站上的個別字,找到每個單詞的頻率上每個網站,爲每個特定詞彙添加所有頻率,然後將所有這些數據合併到一個可以使用Pandas輸出的數據框中。
希望輸出應該是這樣的
Word Frequency
the 200
man 300
is 400
tired 300
我的代碼可以只爲一個網站做到了這點時間,現在我試圖避免重蹈我的代碼。
現在,我可以通過反覆重複我的代碼並抓取每個單獨的網站,然後將每個這些數據框的結果連接在一起,但看起來非常和諧。我想知道是否有人有更快的方式或任何建議?謝謝!
只要打開你的代碼與輸入功能的網址是什麼?那麼你不需要重複代碼。 – joris 2014-08-28 21:39:15
...也許在某處添加[loop](https://docs.python.org/2/tutorial/controlflow.html#for-statements) – 2014-08-28 21:48:30