Python Ошибка BeautifulSoup при извлечении заголовков со страницы с JS - PullRequest
0 голосов
/ 18 июня 2020

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

Тестовая ссылка: «https://www.thomasnet.com/products/adhesives-393009-1.html»

Первый заголовок, который я хочу извлечь, это «Toagosei America, In c.»

Вот мой код:

import requests
from bs4 import BeautifulSoup

url = ("https://www.thomasnet.com/products/adhesives-393009-1.html")

r = requests.get(url).content
soup = BeautifulSoup(r, "html.parser")

print(soup.get_text())

Теперь, если я запустил его вот так, с get_text, я смогу найти заголовки в результате, однако, как только я изменю его на find_all или find, заголовки будут потеряны . Я не могу найти их с помощью инструмента проверки веб-браузера, потому что все это JS сгенерировано.

Будем признательны за любые советы.

1 Ответ

1 голос
/ 18 июня 2020

Вы должны указать, что искать, в данном случае <h2>, чтобы получить первый заголовок:

import requests
from bs4 import BeautifulSoup


url = 'https://www.thomasnet.com/products/adhesives-393009-1.html'

soup = BeautifulSoup(requests.get(url).content, 'html.parser')

first_title = soup.find('h2')
print(first_title.text)

Печать:

Toagosei America, Inc.
...