Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用data-attribute-Python-BeautifulSoup刮取元素的内容_Python_Web Scraping_Beautifulsoup - Fatal编程技术网

使用data-attribute-Python-BeautifulSoup刮取元素的内容

使用data-attribute-Python-BeautifulSoup刮取元素的内容,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我想提取位于a-tag元素后面的文本内容。代码如下所示: <a data-autid="article-url" href="linkToTheWebsite">HERE STANDS THE TEXT I WANT TO EXTRACT</a> 你知道我能做什么吗?你可以使用CSS选择器: 表示属性名为attr且其值为的元素 确切地说是价值 要使用CSS选择器,请使用方法而不是find() 在您的示例中: from bs4 i

我想提取位于a-tag元素后面的文本内容。代码如下所示:

<a data-autid="article-url" href="linkToTheWebsite">HERE STANDS THE TEXT I WANT TO EXTRACT</a>
你知道我能做什么吗?

你可以使用CSS选择器:

表示属性名为attr且其值为的元素 确切地说是价值


要使用CSS选择器,请使用方法而不是
find()

在您的示例中:

from bs4 import BeautifulSoup

html = """<a data-autid="article-url" href="linkToTheWebsite">HERE STANDS THE TEXT I WANT TO EXTRACT</a>"""
soup = BeautifulSoup(html, "html.parser")

>>> print(soup.select_one('a[data-autid="article-url"]').text)
HERE STANDS THE TEXT I WANT TO EXTRACT
您可以尝试以下方法:

from lxml import html
import requests

html = requests.get('yoururl')
tree = html.fromstring(html.content)
yourtext = tree.xpath('//a[@data-autid="article-url"]/text()')

为什么要使用
lxml
?OP已经标记了
BeautifulSoup
,遗憾的是这两个选项都不起作用。不知道为什么。没有给出错误或任何东西,只是没有变量的内容in@NiklasKlotz页面可能是动态加载的。您应该改用名为
selenium
的模块。
print(soup.find("a", attrs={"data-autid": "article-url"}).text)
from lxml import html
import requests

html = requests.get('yoururl')
tree = html.fromstring(html.content)
yourtext = tree.xpath('//a[@data-autid="article-url"]/text()')