2017-09-21 1 views
0

나는 쉬운 단어/문장 찾기를하려고합니다. 웹 사이트에서 문장을 찾는 방법은 무엇입니까?

이 시도 : 그것은 url 대한 설명을 잘 작동하지만 같은

import urllib 
from urllib import request 

url = "https://fotka.com/profil/k" 
word = "Nie ma profilu" 


def search_website(url, word): 
page = urllib.request.urlopen(url) 
phrase_present = False 

for i in page: 
    if bytes(word, encoding='utf8') in i: 
     phrase_present = True 
     print(i) 

return phrase_present 

finder = search_website(url, word) 
print(finder) 

보인다. 브라우저에서 열면 :

url = "https://fotka.com/profil/kkkk" 

이 페이지에 이런 word없고 여전히 True를 반환

url = "https://fotka.com/profil/k" 

실제로 반환 True 그래서 word 선물을 검색하지만 열 경우가있다.

그 이유 해결 방법에 대한 아이디어를

누구나 알고 ... url이 다른하면서 동일 변수 page의 두 경우 모두에서 내용 확인 했는가?

답변

0

당신은 매우 광범위한 캐스트를 게시,하지만 난 당신이 단락 태그 <p> 사이의 데이터를 찾고 생각 :

import re 
import urllib 
url = "some page" 
word = "some word" 

page_data = str(urllib.urlopen(url).read()) 
paragraph_data = re.findall("<p>(.*?)</p>", page_data) 
final_paragraph_data = [i for i in paragraph_data if word in i] 

final_paragraph_data 지금 word의 내용을 포함하고 문장의 모든 클러스터의 목록을 저장합니다.

+0

당신은 또한 좀 더 이해할 수 내 질문의 내용을 변경 한're.MULTILINE'와're.DOTALL' 플래그 –

+0

좀보고 할 수 있습니다에 대한 다음,이 솔루션이 될 수 있습니다. – Emejcz

0

"질문 : 페이지에 표시되는 테스트가 있습니까?" 당신이

import urllib 
from bs4 import BeautifulSoup 

url = "some page" 
word = "some word" 

page = urllib.urlopen(url).read() 

html = BeautifulSoup(page, "html.parser") 
print word in html.get_text() 
+0

제 질문의 내용을 좀 더 이해하기 쉽도록 변경했습니다. – Emejcz

관련 문제