此代码用于使用 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)