Как создать вложенные классы div и ol - PullRequest
1 голос
/ 23 июня 2019

Я пытаюсь почистить эту веб-страницу .

Я хочу загрузить несколько фотографий из "контейнера для фотопотока", но безуспешно.Ниже приведен кодовый блок, с которым я сейчас работаю.

Поиск всех классов промежутков, начинающихся с 'Adaptive'. В качестве примера приведем класс "AdaptiveStreamGridImage grid-tweet has-cards has-content включен" clear first-row hoverZoomLink"

Любой совет?

d = requests.get('https://twitter.com/search?f=images&vertical=news&q=Iran').text
soup = BeautifulSoup(d, 'html.parser')

spans = soup.findAll("span", {"class": lambda x: x and x.startswith('Adaptive')})
print(spans)

Я получаю пустой список при печати 'spans'

[]

1 Ответ

0 голосов
/ 23 июня 2019

Скорее всего, нужный вам контент скрыт с помощью сценариев JS.Наша библиотека request - это то, что не беспокоит эти JS-скрипты и извлекает содержимое, которое будет видно вам в вашем JS-режиме без поддержки вашего браузера.Эта проблема может быть решена с помощью библиотеки selenium.Он позволяет вам загружать вашу веб-страницу и ее содержимое, как и любой другой браузер, который вы используете.Отсюда немного обходного пути с использованием Selenium:

from selenium import webdriver
#Initiate your browser
browser = webdriver.Firefox() 
#It's Firefox in my case, you can have Chrome or Safari or Opera, depending upon the webdriver you have installed in your system
url = 'https://twitter.com/search?f=images&vertical=news&q=Iran'
#Fetch the URL in the 'browser'
browser.get(url)
#Get the page source of the browser
soup = BeautifulSoup(browser.page_source, 'html.parser')
#This page source is pretty similar to the one you see in your inspect element
browser.close() #'browser' has finished it's work, so 'close()' it
#Now apply whatever function you wish to on the webpage
spans = soup.findAll("span", {"class": lambda x: x and x.startswith('Adaptive')})
print(spans)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...