Извлечение ссылок на веб-страницы с веб-сайта и перебор этих ссылок для получения дополнительной информации. - PullRequest
0 голосов
/ 11 апреля 2019

Я абсолютный новичок в программировании на Python. Я занимаюсь веб-очисткой на некоторых веб-сайтах, используя модуль bs4 в Python.

Здесь я хочу получить ссылки с веб-сайта, а затем выполнить их итерацию, потому что когда мыоткройте каждую из ссылок на веб-сайте, чтобы перейти на новую веб-страницу, откуда я хочу извлечь имена агентов.Сейчас существует много ссылок, поэтому я попытался сначала извлечь их в список, а затем выполнить их итерацию.Но мой список возвращает пустой список.Пожалуйста, расскажите, где я делаю что-то не так и что нужно делать.

from bs4 import BeautifulSoup as bs
import pandas as pd

res = requests.get('https://www.mcgrath.com.au/offices', headers = {'User-agent': 'Super Bot 9000'})
soup = bs(res.content, 'lxml')

links = [item['href'] for item in soup.select('.align w-1140 p-none a')]
print(links) ````

1 Ответ

1 голос
/ 11 апреля 2019

Вы используете неправильный селектор. Вместо этого вы должны использовать: .align.w-1140.p-none > a. Нравится:

links = [item['href'] for item in soup.select('.align.w-1140.p-none > a') if item['href'] != '/']

Это потому, что <div class="align w-1140"> соответствует объединенным классам CSS.

А затем, чтобы получить электронные письма агентов, вы можете сделать:

res = requests.get('https://www.mcgrath.com.au/offices/178-annerley-yeronga', headers = {'User-agent': 'Super Bot 9000'})
soup = bs(res.content, 'lxml')
agents_mails = [item['href'] for item in soup.select('.agent a[href^=mailto]')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...