Базовое копирование в Python с помощью BeautifulSoup - PullRequest
0 голосов
/ 11 сентября 2018

Я довольно новичок в кодировании, и недавно я начал изучать веб-скребинг.Я следовал этому учебнику , а также читал документацию по BS4, но я просто не понимаю, почему мой код не работает.

Я пытаюсь извлечь этозаголовок поста с веб-браузером, но похоже, что он не может найти теги, которые соответствуют "('div', class _ = 'header')"

Мой код:

import requests
from bs4 import BeautifulSoup

SOURCE = requests.get('http://coreyms.com/').text
SOUP = BeautifulSoup('SOURCE', 'lxml')

HEADER = SOUP.find('div', class_='header')
HEADLINE = HEADER.h2.a.href

print(HEADLINE)

Сообщение об ошибке:

Traceback (most recent call last):
   File "WSCoreySchafer.py", line 10, in <module>
    HEADLINE = ARTICLE.h2.a.href
AttributeError: 'NoneType' object has no attribute 'h2'

1 Ответ

0 голосов
/ 11 сентября 2018

Строка:

SOUP = BeautifulSoup('SOURCE', 'lxml')

пытается создать объект супруга из строки 'SOURCE', а не из значения, хранящегося в переменной SOURCE.

Вы также ищете неправильный элемент в html, вам не нужен <div> с class="header", вы на самом деле ищете элемент <header> (которого несколькона этой странице).Я бы фактически предложил поискать элемент <h2> с class="entry-title", который вы можете сделать так:

import requests
from bs4 import BeautifulSoup

SOURCE = requests.get('http://coreyms.com/').text
SOUP = BeautifulSoup(SOURCE, 'lxml')

HEADER = SOUP.find('h2', class_='entry-title')
headline_href = HEADER.a['href']
print(headline_href)

, который печатает

http://coreyms.com/development/best-sublime-text-features-and-shortcuts
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...