파이썬 웹 스크래핑에서 특정 문제가 있습니다. 배경은 모든 음식 스크랩을 스크랩하고 싶습니다. http://www.bbc.co.uk/food/recipes/! 자, 다음은 단일 조리법에 내 코드파이썬 웹 스크래핑 오류 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()에서 모든 레시피 관련 함수를 호출하여 하나의 레시피와 관련된 모든 것을 추출합니다.이 함수를 호출합니다. 각 Url에 대한 루프의 collect_all_information 함수! 그리고 때마다, 나는 특정 조리법에 관련된 모든 정보를 추출, 나는 지금
Recipes.txt
라는 파일에이 정보를, 나는 데 문제를 추가하고,ConnectionError 아래의 오류 : ('연결이 중단되었습니다.', ConnectionAbortedError (10053, '호스트 시스템의 소프트웨어에 의해 설정된 연결이 끊어졌습니다', 없음, 10053, 없음)
이 오류는 약 1000 개의 조리법을 다운로드 한 후에 발생합니다 11,000 가지 요리법 중 일부는 스크랩/모두를 다운로드하고 싶습니다. 모든 요리법에 대한 링크가 있으며, 각 요리법에서 요리 시간, 준비 시간, 저자, 재료 등의 정보를 추출합니다. 등등), 나는 이것에 대한 비슷한 대답을 찾았지만, 각각의 대답은이 에러가 다른 이유 때문일 수 있다고 말한다. 여기 내 직감은, 나는이 오류가 어떻게 든 단위 시간 (초과 한도를 의미)에서 폐기 된 데이터의 최대 개수와 관련이 있다고 생각한다. 그리고 나는 그것을 고쳐야한다고 생각한다. (나는 이미 그것을 해체 한 지 2 초 후에 수면을 시도했다. 각각 20 개의 조리법이 있지만 여전히이 오류가 발생 함)!
더 많은 정보를 얻으려면 BeautifulSoup 4와 Python 3, Windows 10을 사용하고 있습니다. 어떤 사람이 친절하게도이 오류가 발생하는 이유를 알려주고이를 해결하기 위해 코드에서 무엇을 수정해야합니까? 당신의 솔루션은 이해하기 쉽고 구현하기가 쉬운 한 무엇이든 될 수 있습니다. 또한 '재시도'패키지를 사용해 보았지만 어떻게 사용해야 하는지를 알 수 없으므로주의해야합니다. 코드! 그래서, 당신은 또한 당신의 대답에 그것을 포함시킬 수 있습니다!
나는 '문제'가 발생하는 곳을 알려주기 위해 'count'라는 변수를 유지하고 있습니다. 텍스트 파일에 레서피를 추가하기 전에 인쇄합니다. (많은 반복 후에이 문제가 발생합니다.) 이 같은 문제가 오는하더라도, 그래서 저는 적어도 나는 몇 가지 요리법을 다운로드해야 내 하드웨어를 저장, 파일에 추가 -
감사
의견 : 질문을 편집하고 질문이 아닌 메모를 추가 할 수 있습니다. – furas
연결에 문제가있어서 서버에 연결하는 코드는 어디에 있습니까? 당신은 당신의 문제에서 쓸데없는 코드를 보여줍니다. 항상 완전한 오류 메시지 (Traceback)를 보여 주면 다른 유용한 정보가있을 수 있습니다. 어느 선이 문제가되는지. – furas
코드를 참조하십시오, 추적에 관해서는, 정말 미안하지만 우연히 결과물을 닫았습니다. 이제 다시 실행해야하고이 오류가 발생하기까지 거의 한 시간 정도 기다려야합니다 ... –