【发布时间】:2020-01-09 15:52:14
【问题描述】:
我编写了一个脚本来从 div 中抓取数据,如果 div 类中存在预先指定的字符串,则返回一个布尔值,一切都在本地完美运行。但是,当我将代码复制到 colab 笔记本时,脚本会遇到 ReCaptcha 并返回 403 状态代码。
我的代码如下:
def stock_checker(listofurls):
headers = {
'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/79.0.3945.88 Safari/537.36"
}
stock_level = []
for target_url in tqdm(listofurls):
print(target_url)
query = requests.get(target_url,headers=headers).text
html = soup(query, "html.parser")
soup_result = html.find("div", {"class": "product-details__options-basket"}).text
stock_bool = "Out of Stock" if "Out of Stock" in str(soup_result) else "In Stock"
stock_level.append(stock_bool)
return pd.DataFrame({"URls" : listofurls, "In Stock" : stock_level})
print(stock_checker(myurllist))
返回的 html 用于 ReCaptcha,因此我在下面引用的 div 不存在并且代码错误。
关于为什么在 colab 而不是本地发生这种情况的任何想法?和/或如何解决问题?
Ps - 我将它放在 colab 中,以便其他人只需运行代码即可使用,而无需编写代码。
【问题讨论】:
标签: python web-scraping jupyter-notebook google-colaboratory