此代码用于使用 python 返回 None 的 Web Scraping。为啥?任何帮助,将不胜感激

Posted

技术标签:

【中文标题】此代码用于使用 python 返回 None 的 Web Scraping。为啥?任何帮助,将不胜感激【英文标题】:This code for Web Scraping using python returning None. Why? Any help would be appreciated此代码用于使用 python 返回 None 的 Web Scraping。为什么?任何帮助,将不胜感激 【发布时间】:2020-05-29 21:47:21 【问题描述】:
from bs4 import BeautifulSoup

import requests

headers = 'Use-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml,like Gecko) Chrome/79.0.3945.130 Safari/537.36'

url = 'https://www.amazon.com/Sony-Alpha-a6400-Mirrorless-Camera/dp/B07MV3P7M8/ref=sr_1_4?keywords=sony+alpha&qid=1581656953&s=electronics&sr=1-4'

page = requests.get(url,headers=headers)

soup = BeautifulSoup(page.content, 'html.parser')

title = soup.find(id="productTitle").get_text()

price = soup.find(id="priceblock_ourprice").get_text()

print(title)

print(price)

【问题讨论】:

你做过调试吗?具体是什么问题? 我没有调试。它在soup.find(id="productTitle") 行返回 None 我没有调试。 ericlippert.com/2014/03/05/how-to-debug-small-programs 【参考方案1】:

您的代码工作正常,但在产品页面之前有一个机器人检查,因此您的请求在该机器人检查页面中查找 span 标签,失败并返回 None

这是一个可以帮助你的链接:python requests & beautifulsoup bot detection

【讨论】:

以上是关于此代码用于使用 python 返回 None 的 Web Scraping。为啥?任何帮助,将不胜感激的主要内容,如果未能解决你的问题,请参考以下文章

Python3 open() 函数-用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

python语句: def greet(a,b=4): print b print greet(3)

Python函数

使用 poll() 方法(在 opensuse 中)运行 python 模块时,终端显示返回值为 None?

Python 中的 Null 或 None 函数

python基础:递归函数返回值(return)误区