Python 找不到div类的Web抓取选择器

Python 找不到div类的Web抓取选择器,python,web-scraping,Python,Web Scraping,我是网页抓取新手,这是我的第一个网页抓取项目之一,我找不到适合我的汤的选择器。选择 我想让数据电话(见下图)了解DTAND,但它在一个div类中,然后在一个中,我认为最简单的方法之一是使用soup.select,它允许正常的css选择器。 这将返回可以从中拾取数据属性的锚定的整个列表 注意:我刚在终端上试过: from bs4 import BeautifulSoup import requests url = 'https://en.wikipedia.org/wiki/Web_scrap

我是网页抓取新手,这是我的第一个网页抓取项目之一,我找不到适合我的汤的选择器。选择


我想让数据电话(见下图)了解DTAND,但它在一个div类中,然后在一个

中,我认为最简单的方法之一是使用soup.select,它允许正常的css选择器。

这将返回可以从中拾取数据属性的锚定的整个列表

注意:我刚在终端上试过:

from bs4 import BeautifulSoup
import requests

url = 'https://en.wikipedia.org/wiki/Web_scraping'
r  = requests.get(url)

soup = BeautifulSoup(r.text)

result = soup.select('a.mw-jump-link') # or any other selector

print(result)

print(result[0].get("href"))  
您必须循环处理soup.select的结果,然后仅从属性中收集数据值

使现代化 好的,我自己在DOM中搜索过,下面是我如何检索所有电话数据的:

anchores = soup.select('a[data-phone]') 
    for a in anchores:
        print(a.get('data-phone'))
它也只适用于这样的数据选择器:soup.select'[data phone]'

这是真正的证据:

令人惊讶的是,对我来说,它也适用于类:

for a in soup.select('a.mlr__item__cta.jsMlrMenu'):
     print(a.get('data-phone'))
毫不奇怪,我们只是在第一个选择器中输入了一个错误。。。 找出差异:

好:a.mlr\uuuuu item\uuuuu cta.jsMlrMenu
坏:a.mlr\uu item\u cta.jsMlrMenu

你想只从第一个锚点或者从无序列表中所有可用的锚点获取电话号码?@V.Sambor从所有锚点我看不到其他锚点类,但你可以尝试以下操作:a.mlr\uitem\u cta.jsMlrMenu作为选择器它给了我一个空列表,假设我只想要第一个锚点,这无关紧要,诚实地说,漂亮的用户组无法运行JavaScript-因此,首先检查页面是否没有使用JavaScript添加项目-关闭浏览器中的JavaScript并再次加载页面。感谢您的评论,我在汤中尝试了它。选择“a.mlr\u item\u cta.jsMlrMenu”,但它会给我一个空列表[]然后尝试只喝汤。选择“a”以确保它返回一些东西…如果它有效,您可以尝试使用一个类汤。选择“a.mlr\u项目\u cta”,或者您甚至可以尝试只喝一个类汤。选择“mlr\u项目\u cta”。。。让我知道它是怎么回事。当我尝试喝汤时。选择“a”它会返回一些东西,但当我尝试喝汤时。选择“a.mlr\u item\u cta”或“soup”。选择“mlr\u item\u cta”它不会返回任何东西,我编辑了我的帖子,这样你就可以看到我的代码。在类汤之前应该有一个点。选择“.mlr\u item\u cta”现在仍然是一个空列表
anchores = soup.select('a[data-phone]') 
    for a in anchores:
        print(a.get('data-phone'))
for a in soup.select('a.mlr__item__cta.jsMlrMenu'):
     print(a.get('data-phone'))