Читайте список ссылок с красивым супом - PullRequest
1 голос
/ 21 апреля 2019

Я пытался прочитать ссылки из списка URL-адресов, которые я успешно извлек. Моя проблема в том, что я получаю TypeError Traceback (most recent call last), когда пытаюсь прочитать весь список. Однако когда я читаю отдельную ссылку, строка urlopen(urls).read() выполняется без проблем.

response = requests.get('some_website')
doc = BeautifulSoup(response.text, 'html.parser')
headlines = doc.find_all('h3')

links = doc.find_all('a', { 'rel':'bookmark' })
for link in links:
    print(link['href'])

for urls in links:
    raw_html = urlopen(urls).read()  <----- this row here
    articles = BeautifulSoup(raw_html, "html.parser")

1 Ответ

0 голосов
/ 21 апреля 2019

Попробуйте использовать BeautifulSoup с requests.Session(), для эффективности повторного использования соединения и добавления заголовка

import requests
from bs4 import BeautifulSoup

with requests.Session() as s:

    url = 'https://newspunch.com/category/news/us/'
    headers = {'User-Agent': 'Mozilla/5'}
    r = s.get(url, headers = headers)
    soup = BeautifulSoup(r.text, 'lxml')
    links = [item['href'] for item in soup.select('[rel=bookmark]')]

    for link in links:
        r = s.get(link)
        soup = BeautifulSoup(r.text, 'lxml')
        print(soup.select_one('.entry-title').text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...