首页 > 解决方案 > BeautifulSoup:选择器没有提取正确的数据 - Yahoo Scrape

问题描述

我正在尝试从类值包含 compText 的元素中提取文本。问题是它提取了除我想要的文本之外的所有内容。

当我在开发人员工具中使用 CSS 选择器时,它可以正确识别元​​素。

当输入的查询没有结果时,我正在尝试抓取出现在 Yahoo SERP 中的文本。

  1. 如果我的查询是(包括引号)“klsf gl glkjgsdn lkgsdg”什么都没有显示期望补充文本“我们没有找到结果blabla”并且选择器正确提取数据
  2. 如果我的查询是(包括引号)“基于专业。块。有机硅。参考”。雅虎将添加广告,因为关键字“有机硅”会触发第一段中描述的行为。

这是代码:

import requests
from bs4 import BeautifulSoup
url = "http://search.yahoo.com/search?p="
query = '"based specialty chemicals. Blocks. Organosilicone.  Reference"'
r = requests.get(url + query) 
soup = BeautifulSoup(r.text, "html.parser")

for EachPart in soup.select('div[class*="compText"]'):
    print (EachPart.text)

有什么问题?

谢谢,

编辑:提取的文本似乎是我可以在 SERP 上找到的“有机硅”一词的定义。

EDIT2:这是我得到的文字片段:“‘特种化学品’成员公司创造和生产的产品,其中许多是中小型企业,源于原始和持续创新。他们推动了低碳、资源- 未来的高效和知识经济。” 以及我使用浏览器时的 SERP 屏幕截图在此处输入图像描述

标签: pythonbeautifulsoup

解决方案


推荐阅读