Невозможно использовать несколько атрибутов в методе .select () - PullRequest
0 голосов
/ 04 января 2019

Я написал скрипт на python, чтобы получать разные ссылки на разные посты с сайта.Я могу получить желаемый результат, если выберу какой-либо один атрибут, например a[href^='/questions/'] или .question-hyperlink.

Мой вопрос: как я могу использовать два атрибута из одного и того же узла в методе .select(), как я пробовал ниже?

Моя попытка до сих пор (безрезультатно; ошибки тоже нет):

import requests
from bs4 import BeautifulSoup

link = "https://stackoverflow.com/questions/tagged/web-scraping"

res = requests.get(link)
soup = BeautifulSoup(res.text,'lxml')
for item in soup.select("a[href^='/questions/'].question-hyperlink"):
    print(item.get("href"))

1 Ответ

0 голосов
/ 04 января 2019

На самом деле ваш код работает нормально.Я получаю ваши ожидаемые результаты.Мне просто нужно было установить lxml и BeautifulSoup4 для запуска.

/questions/54035304/unable-to-use-multiple-attributes-within-select-method
/questions/54035268/div-returns-empty-while-scraping-price-using-beautifulsoup-everything-else-lik
/questions/54035199/scrapy-restart-scrapoxy-instances
/questions/54034484/how-i-can-read-multiple-web-addresses-with-sign-in-address-that-block-dynami

PS Вам нужно использовать последние версии lxml и bs4.Поэтому вам может потребоваться выполнить

  • pip3 install lxml --upgrade
  • pip3 install beautifulsoup4 --upgrade
...