Форум сайта python.su
0
Добрый день, подскажите пожалуйста. Есть задача:
- По запросу “ххх” парсим выдачу Гугл
- Тащим все ссылки
- Переходим по этим ссылкам и парсим Заголовки сайтов.
Вот завис на третьем шаге, вот код:
import requests, re from bs4 import BeautifulSoup url = 'http://www.google.com/search' keyword = input("vvodim zapros: ") payload = {'q': keyword, 'start': '0', 'num':'20'} my_headers = {'User-agent': 'Mozilla/11.0'} r = requests.get(url, params=payload, headers=my_headers) soup = BeautifulSoup(r.text, 'html.parser') h3tags = soup.find_all('h3', class_='r') for h3 in h3tags: try: massiv = [] massiv.append(re.search('url\?q=(.+?)\&sa', h3.a['href']).group(1)) print(massiv) except: continue
/kaban.tv:8080/']
/ kaban.tv:8080/rossiya-1-online'
/kaban.tv:8080/tnt-online'Отредактировано forexjoker (Июнь 6, 2017 17:42:50)
Офлайн
857
Нужно на функциях всё делать.
У тебя же всё вперемешку, из-за чего при малейшем усложнении задания всё ломается целиком.
Сделай функцию загрузки страницы по запросу. Ты ей подаёшь строку запроса, а она тебе возвращает страницу с результатами.
Сделай функцию выделения ссылок из страницы. Ты ей подаёшь текст страницы, а она тебе возвращает список ссылок.
Сделай функцию фильтрования ссылок из списка ссылок. Ты ей подаёшь список ссылок, а она тебе возвращает отфильтрованный список ссылок.
Сделай функцию загрузки страницы по адресу. Ты ей подаёшь адрес, а она тебе возвращает страницу с этого адреса.
Сделай функцию извлечения заголовка страницы. Ты ей подаёшь текст страницы, а она тебе возвращает заголовок страницы.
Потом сделай общую функцию, которая управляет всеми этими функциями.
Офлайн