无法在.select()方法中使用多个属性

时间:2019-01-04 08:20:01

标签: python python-3.x web-scraping beautifulsoup css-selectors

我用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 :(得分:3)

实际上,您的代码可以正常工作。我正在取得您的预期结果。我只需要安装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

P.S。您需要使用最新的lxmlbs4版本。因此,您可能需要执行

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