我用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"))
答案 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。您需要使用最新的lxml
和bs4
版本。因此,您可能需要执行
pip3 install lxml --upgrade
pip3 install beautifulsoup4 --upgrade