현재 Pythons BeautifulSoup Library를 사용하여 신문 기사의 웹 페이지를 크롤링하고 있습니다. 이러한 기사는 개체 "세부 정보"에 저장됩니다.파이썬 : 배열의 문자열과 다른 배열의 텍스트 부분 문자열
그런 다음 개체 "줄"에 저장되는 여러 거리의 이름이 두 개 있습니다. 이제 "선"에 포함 된 거리 이름에 대한 기사를 검색하려고합니다.
거리 이름 중 하나가 기사의 일부인 경우 배열의 거리 이름을 안전하게 지키고 싶습니다.
기사와 일치하는 항목이없는 경우 (선택한 기사에 거리 이름이 포함되어 있지 않은 경우) 배열에 빈 요소가 있어야합니다.
예를 들어, "선로"가 "Abbey Road", "St-John 's Bridge", "West Lane", "Sunpoint", "East End"로 구성된다고 가정 해 봅시다.
개체 "세부 정보"는 "Abbey Road"와 "West Lane"이 포함 된 4 개의 기사로 구성됩니다 (예 : "Abbey Road의 교통 사고, 3 명이 다쳤습니다"). 다른 2 개의 기사에는 "줄"의 이름이 없습니다.
다음이 같은 배열이 결과와 일치 한 후 :
는 [] [ "애비로드"] [] [ "서쪽 레인은"] 나는 또한 내 원래,이에 대한 자동 벡터를 사용하는 들었다 데이터 샘플이 상당히 큽니다. 그러나 문자열 연산에 벡터화를 사용하는 것에 익숙하지 않습니다. 아무도 이미 이걸 가지고 일 했니?
내 코드는 현재 다음과 같습니다 그러나이 경우에만 반환 "-1"내 결과 배열의 요소로 : 누군가가 내 실험을 재현하고자하는 경우
from bs4 import BeautifulSoup
import requests
import io
import re
import string
import numpy as np
my_list = []
for y in range (0, 2):
y *= 27
i = str(y)
my_list.append('http://www.presseportal.de/blaulicht/suche.htx?q=' + 'einbruch' + '&start=' + i)
for link in my_list:
# print (link)
r = requests.get(link)
r.encoding = 'utf-8'
soup = BeautifulSoup(r.content, 'html.parser')
with open('a4.txt', encoding='utf8') as f:
lines = f.readlines()
lines = [w.replace('\n', '') for w in lines]
details = soup.find_all(class_='news-bodycopy')
for class_element in details:
details = class_element.get_text()
sdetails = ''.join(details)
slines = ''.join(lines)
i = str.find(sdetails, slines[1 : 38506])
print(i)
, 웹 사이트 - URL이 위의 코드에 개체 "세부 정보"의 기사 크롤링 및 저장이 제대로 작동하므로 코드를 복사 할 수 있습니다.
"라인"개체에 대한 내 원래의 데이터에 대한 .txt 인 파일이 보관-폴더에 액세스 할 수 있습니다 https://www.dropbox.com/s/o0cjk1o2ej8nogq/a4.txt?dl=0
덕분에 어떤 힌트를 많이 나는 벡터화를 통해 바람직하게는,이 일을 할 수있는 방법 .
내가 변수'soup' 각 반복에 덮어 쓰기됩니다 루프에 대한 두 번째에 대해 매우 확신입니다. 어쨌든 전체 코드를 실행하고 문제를 이해하려고 노력합니다. –
두 번째 for 루프는 뉴스 보고서가 저장된 웹 사이트의 여러 페이지를 크롤링하기위한 것입니다. 첫 번째 for 루프와 페이지 매김의 카운터가 URL에서 27입니다. 각 링크는 한 페이지에 대한 링크 목록을 만듭니다. 그러나 거리 이름을 "a4.txt"의 목록과 일치시키고 거리 이름과 일치하지 않는 요소가 비어 있고 일치하는 이름을 가진 요소가 일치하는 요소가있는 배열에 저장하면 기사에서 거리 이름을 추출하는 데 어려움을 겪고 있습니다. 이름 만. 내 전체 코드가 위의 게시물에 있으며 "a4.txt"에 대한 링크가 있습니다. @VivekHarikrishnan – DataFreshman