如何在网站上找到句子?
问题描述:
我正在努力做一些简单的单词/判刑。如何在网站上找到句子?
尝试这样:
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
。 如果你在浏览器中打开:
url = "https://fotka.com/profil/k"
确实是有搜索word
所以目前的回报True
,但如果你打开:
url = "https://fotka.com/profil/kkkk"
有没有这样的word
页面上,它仍然返回True
。
我检查的变量page
并在这两种情况下的内容是一样的,而url
是不同的...
任何人都知道为什么与解决办法的任何想法?
答
您已经发布了一个非常广阔的演员,但我认为你正在寻找段落标记<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
内容句子的所有集群的列表。
答
如果您的问题是“如何检查页面上是否有可见的测试?”那么,这可能是您的解决方案为您
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
你可能也想看看我已经改变了我的问题的内容更加理解了're.MULTILINE'和're.DOTALL'标志 –
。 – Emejcz