Скрести информацию внутри - PullRequest
0 голосов
/ 29 марта 2020

Мне нужно почистить имена журналистов и журналы с этого сайта:

https://www.politicasufacebook.it/giornalisti/

Что мне нужно, так это получить конкретно <a href информация (имя журналиста) и < span (название газеты).

Например, Андреа Сканци :

<a href="https://www.facebook.com/andreascanzi74/" style="color:#003060" target="_blank">Andrea Scanzi</a>

и Il Fatto Quotidiano

<span style="font-size:13px;line-height:25px">&nbsp;&nbsp;&nbsp;Il Fatto Quotidiano</span>

Я написал следующий

with requests.Session() as s: # use session object for efficiency of tcp re-use
    s.headers = {'User-Agent': 'Mozilla/5.0'}
    r = s.get('https://www.politicasufacebook.it/giornalisti/')
    soup = bs(r.content, 'lxml')

, но я не знаю, как продолжить, чтобы извлечь такую ​​информацию.

Любая помощь и предложения будут более чем приветствоваться. Спасибо

1 Ответ

0 голосов
/ 29 марта 2020

Вы можете использовать soup.find_all с желаемым тегом и атрибутами.

import requests
from bs4 import BeautifulSoup

r = requests.get('https://www.politicasufacebook.it/giornalisti/')
soup = BeautifulSoup(r.content, 'lxml')

journalists = soup.find_all('a', {'style': 'color:#003060', 'target': '_blank'})
newspapers = soup.find_all('span', {'style': 'font-size:13px;line-height:25px'})

for i, v in enumerate(journalists):
    print(v.text.strip() + ' - ' + newspapers[i].text.strip())

Вывод:

Roberto Saviano - La Repubblica
Marco Travaglio - Il Fatto Quotidiano
Enrico Mentana - La7
Andrea Scanzi - Il Fatto Quotidiano
Massimo Gramellini - Corriere Della Sera
Nicola Porro - Rete 4
Salvo Sottile - Rai1
Carmelo Abbate - Storie Nere
Gad Lerner - autonomo
Michele Serra - La Repubblica
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...