我在网页抓取亚马逊链接的输出,每个链接都包含一本书的价格,所以,我的想法是得到链接和链接的书的价格。
我已经使用urllib
创建了代码。但是,在运行这段代码之后,我得到了一个HTTP响应status code 308
,因为我想抓取230个链接。我做了一个搜索,发现urllib
还不支持308个代码,我认为Scrapy会支持。
下面是我的urllib
代码:
import pandas as pd
import json
from urllib.request import urlopen, Request
from bs4 import BeautifulSoup as bs
import requests
from pprint import pprint
import ast
from time import sleep
url= "https://api.nytimes.com/svc/books/v3/lists/full-overview.json?api-
key=mykey "
data = requests.get(url).text
data = json.loads(data)
best_sellers_history = []
for index in range(0,len(data['results']['lists'])):
for book in range(0,len(data['results']['lists'][index]['books'])):
amazon_product_url = (data['results']['lists'][index]['books'][book]
['amazon_product_url'])
pprint((amazon_product_url)
req = Request(amazon_product_url, headers=ast.literal_eval("{'User-
Agent':'Mozilla/5.0'}"))
page = urlopen(req)
soup = bs(page, 'html.parser')
price = soup.find('span',{'class':'a-size-base a-color-price a-color-price'})
if price:
price = price.get_text(strip=True).replace('$', '')
else:
price = "None"
print(price)
sleep(2)
我试过把这个转换成scrappy,但是失败了。有没有人能帮我把这个转换成scrappy?
1条答案
按热度按时间r6hnlfcb1#
这是转换为
Scrapy
获取亚马逊图书列表从纽约时报API服务器。步骤
它将创建文件
在这些文件中,我们将只涉及两个文件(
items.py
和ny_times.py
)使用此代码覆盖两个文件
ny_times.py
一米四分一秒
运行并保存到
result.json
如果您成功完成了这些步骤,您可以在终端中看到此日志。