我有在Python的Web刮痧某個特定的問題。背景是我想要取消所有食物食譜http://www.bbc.co.uk/food/recipes/!現在,下面是我在一個單一的食譜代碼Python網絡刮痧錯誤10053
def extract_all_information():
file_name='links_all_recipes.txt'
links=read_all_links(file_name)
count=1
counter=0
for link in links:
Recipes=open('All_Recipes.txt','a',encoding='utf-8')
url='http://'+link
single_recipe=recipe.collect_all_information(url)
Recipes.write(str(single_recipe))
Recipes.write('\n')
counter+=1
if counter>20:
counter=0
time.sleep(2)
count+=1
Recipes.close()
提取信息(如作者)的代碼是這樣的:
from bs4 import BeautifulSoup
import requests
def extract_author(recipe_url):
recipe=requests.get(recipe_url)
rsoup = BeautifulSoup(recipe.text, "lxml")
result = ''
for tag in rsoup.find_all(itemprop='author'):
result = tag.contents[0]
return result
你可以假設所有其他功能(如Extract_cooking_time()和extract_preparation_time()等類似上述功能),最終,我把所有這些功能(其中提取物()在collect_all_information相關的配方)的特定信息,以提取與單一配方的一切,我把這個函數collect_all_information在每個Url的循環中!每一次,我提取所有相關的特定配方的信息,我附上此信息到一個名爲Recipes.txt
現在文件,說我遇到的問題是,下面
ConnectionError的錯誤: ('Connection Aborted。',ConnectionAbortedError(10053,'已建立的連接被您的主機中的軟件中止',None,10053,None))
這個錯誤出現在我下載大約1000個食譜之後11,000個食譜,我想要全部下載/下載,我有所有食譜的鏈接,並且在每個食譜中,我提取一些信息,如烹飪時間,準備時間,作者,成分等等),我尋找類似的答案,但每個答案都表示這個錯誤可能是由於不同的原因。這是我的直覺,我認爲這個錯誤在某種程度上與單位時間內報廢的最大數據量有關(意味着超出限制),我想我應該解決這個問題(我已經試圖在報廢后2秒的時間內做到這一點20食譜每個,但仍然收到此錯誤)!
只是一些更多的信息,我使用BeautifulSoup 4和Python 3,Windows 10!有人可以如此友好地告訴我我有這個錯誤的原因,我應該修改我的代碼來解決它。只要容易理解和實現,您的解決方案就可以是任何東西,請注意,我試圖使用Package'retry',但我無法確定我應該如何使用它,以及我應該在哪裏使用它代碼!所以,你也可以在你的答案中包括這個!
爲了清楚起見,我維護變量'count'來告訴我問題出現在哪裏,我在將文本附加到文本文件之前打印出來(經過多次迭代後會發生這種問題)!我追加在該文件中,這樣即使就這樣產生了一個問題,至少我下載一些菜譜,並在我的硬件救了他們 -
預先感謝您很多時間
順便說一句:你可以編輯問題和添加文本的問題,而不是評論。 – furas
您有連接問題,因此連接到服務器的代碼在哪裏?你顯示的代碼在你的問題中是無用的。並始終顯示完整的錯誤信息(Traceback)可以有其他有用的信息 - 即。哪一行出問題。 – furas
請看現在的代碼,至於追溯,我真的很抱歉,但我不小心關閉了輸出,現在我不得不再次運行它,等待幾乎一個小時才能得到這個錯誤,所以... –