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'と私はより理解しやすいように私の質問の内容を変更した –

+0

' re.DOTALL'フラグを見てしたい場合があります。 – 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

関連する問題