首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >美汤选择法不按预期选择结果

美汤选择法不按预期选择结果
EN

Stack Overflow用户
提问于 2019-05-27 18:31:47
回答 2查看 1.3K关注 0票数 0

在第11章的自动化材料教程,我感到幸运的谷歌搜索项目。它似乎正确地下载了HTML数据,但是当我使用漂亮汤选择结果链接时,我什么也得不到。根据这本书,它说使用soup.select('.r a'),它没有选择任何东西。

阅读文档时,我试着使用不同的语法soup.select('[class~=r]'),希望得到漂亮的汤来选择一些东西,但它没有。我也尝试了选择不同的类,它也没有这样做,所以我认为我做了一些根本错误的事情。

代码语言:javascript
运行
复制
SEARCHVAR = sys.argv[1:]

res = requests.get('http://google.com/search?q=' + ' '.join(SEARCHVAR))
res.raise_for_status()
print('Searching ' + ' '.join(SEARCHVAR[:]) + ' on Google')
soup = bs4.BeautifulSoup(res.text, 'html.parser')
print('Parsing')
linkElems = soup.select('.r a') 
print(str(linkElems))

我用print(str(linkElems))来检查什么是美丽的汤,但我一直没有得到任何东西,只有[]

EN

回答 2

Stack Overflow用户

发布于 2019-05-27 20:13:42

这是不可行的,因为你得到谷歌的请求。如果我在Google上使用chrome中的开发工具,那么div类r确实存在。但是,当我用request.get下载查询时,它已经不在了。但是,现在有一个名为“jfp3ef”的div类。我能够获得与搜索结果相关联的a标记,如下所示

代码语言:javascript
运行
复制
soup = soup.find_all("div", {"class": "jfp3ef"})
for div in soup:
    print(div.select("a"))

如果需要,可以使用urllib.request下载r类中的div的整个页面,但是Google会阻止这种行为,因此必须更改标题信息。

代码语言:javascript
运行
复制
SEARCHVAR = sys.argv[1:]
query = 'http://google.com/search?q=' + ' '.join(SEARCHVAR)
headers = {}
headers['User-Agent'] = "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 
(KHTML, like Gecko) Chrome/24.0.1312.27 Safari/537.17"
req = urllib.request.Request(query, headers= headers)
html = urllib.request.urlopen(req).read()
print('Searching ' + ' '.join(SEARCHVAR[:]) + ' on Google')
soup = bs4.BeautifulSoup(html, 'html.parser')
print('Parsing')
linkElems = soup.select('.r a') 
print(str(linkElems)

这本书中的例子已经过时了。我想我在"jfp3ef“类中的最好例子是来自google的随机选择,很快就会崩溃,或者根本不适合你。下面的例子效果很好。

票数 1
EN

Stack Overflow用户

发布于 2020-06-02 14:21:45

代之以:

代码语言:javascript
运行
复制
linkElems = soup.select('div#main > div > div > div > a')

通过以下方式:

代码语言:javascript
运行
复制
linkElems = soup.select('div#main > div > div > div > a')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56330930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档