поисковая фраза Python 2 на нескольких веб-сайтах, взятая из файла списка - PullRequest
0 голосов
/ 23 ноября 2018

Итак, у меня есть следующий список ссылок в файле с именем «output»:

https://web.archive.org/web/20180101003616/http://onet.pl
https://web.archive.org/web/20180102000139/http://onet.pl
[...]

Если вы откроете первую ссылку из списка и нажмете «ctrl + f» в Firefox, вы можете найти фразу «Katastrofa».".

Все, что мне нужно, - это иметь скрипт, который может найти фразу (" Katastrofa "- единственный пример, я хочу использовать аргумент argv, но это не важно), распечатать сообщение об успехе и продолжитьдалее ...

Я застрял и не могу понять, как это сделать.Скрипт, который я получил для тестирования, не «видит» слово («Katastrofa»), которое определенно находится на первой странице ...

Пожалуйста, помогите :)

Вот то, что я 'мы сделали до сих пор:

f = open('output', 'r')
f2 = f.readlines()
for i in f2:
     r=requests.get(i)
     first_page = r.text
     soup = BeautifulSoup(first_page, 'html.parser')
     page_soup = soup
     fraza = "Katastrofa"
     boxes = page_soup.body.find_all(fraza)
     print(i)
     print(boxes)

Вывод:

https://web.archive.org/web/20180101003616/http://onet.pl

[]
https://web.archive.org/web/20180102000139/http://onet.pl

[]
https://web.archive.org/web/20180103002217/http://onet.pl

1 Ответ

0 голосов
/ 23 ноября 2018

если вы хотите выполнить поиск, если в html string содержится текст

for i in f2:
    r=requests.get(i)
    fraza = "Katastrofa"
    if re.match(fraza, r.text, re.I) # ignore case
        print(i)

, если вы хотите выполнить поиск html element содержать текст

for i in f2:
    r=requests.get(i)
    soup = BeautifulSoup(r.text, 'html.parser')
    fraza = "Katastrofa"
    boxes = soup.find_all(True, text=re.compile(fraza, re.I))
    if boxes:
        print(i)
        print(boxes)

Результатами является список последнего дочернего элемента:

https://web.archive.org/web/20180101003616/http://onet.pl
[<span class="title"> Kostaryka: Katastrofa lotnicza. Media: są ofiary  </span>, 
<span class="title"> Australia: katastrofa samolotu, są ofiary śmiertelne  </span>]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...