我在嘗試從在線詞典中抓取所有單詞以便以后獲得它們的定義時遇到了一個問題。我正在用 BeautifulSoup 抓取,我認為我的 while 和 for 回圈中存在問題。
正如您在下面的代碼中看到的那樣,我的 url 中有兩個變數要抓取,一個用于字母表中的字母,第二個用于頁數,以便從一個字母中獲取所有單詞。
def get_data():
page = 1
letters = ['A', 'B', 'C']
all_words = []
for letter in letters:
while page != 100:
url = f"https://dictionnaire.lerobert.com/explore/def/{letter}/{page}"
soup = BeautifulSoup(requests.get(url=url).text, 'html.parser')
data = soup.find(class_='l-l')
for word in data.find_all('a'):
all_words.append(word['href'])
page = page 1
print(all_words)
print(len(all_words))
使用此代碼,它只考慮字母 A。所以我試著把 while 放在 for 回圈之前,我確實混合了 A、B 和 C 詞,但只有幾十個詞,所以計數根本不匹配。
你們對此有什么想法嗎?我肯定在 while 和 for 回圈操作中遺漏了一些東西,但我不知道是什么(說實話,我對編碼有點陌生)
非常感謝,Btv-
uj5u.com熱心網友回復:
您沒有重置page為 1。
得到字母的單詞后A,值page將是100。在接下來的迭代當字母B的page仍是100等while回圈將不被執行。
for letter in letters:
page = 1 # Resetting the page to 1
while page != 100:
url = f"https://dictionnaire.lerobert.com/explore/def/{letter}/{page}"
soup = BeautifulSoup(requests.get(url=url).text, 'html.parser')
data = soup.find(class_='l-l')
for word in data.find_all('a'):
all_words.append(word['href'])
page = page 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/361660.html
