Scrapy 响应不完整
Scrapy response incomplete
我尝试使用 Scrapy 抓取以下 URL:
http://www.walgreens.com/search/results.jsp?Ntt=bounty+paper+towel
但返回的 URL 不完整。因为当我这样做时
scrapy shell the_url_above
然后
view(response)
网页未完全加载。所以我的问题是:
- 这个问题的原因是什么? (为什么我没有得到 404 而是一个不完整的响应)
- 有哪些潜在的处理方法?
该页面的数据似乎是用 javascript 加载的。如果您检查页面(例如 firebug 网络选项卡),您会看到一旦加载基本页面,产品就会被 javascript 加载,它向 [=] 发送 POST 请求12=] 内容:
{"p":"1", # seems to be page number
"s":"15", # page size
"sort":"relevance",
"view":"allView",
"geoTargetEnabled":false,
"q":"bounty paper towel", # search query
"requestType":"search",
"deviceType":"desktop"}
您可以使用 scrapy 发送此请求:
yield Request('http://www.walgreens.com/svc/products/search',
method='POST',
body=<the json from above>)
您应该会收到一个 json 包含产品数据的对象。
实际上,您甚至可以通过此 link 在浏览器中查看响应:
http://www.walgreens.com/svc/products/search?p=1&s=15&sort=relevance&view=allView&geoTargetEnabled=false&q=bounty%20paper%20towel&requestType=search&deviceType=desktop
我尝试使用 Scrapy 抓取以下 URL: http://www.walgreens.com/search/results.jsp?Ntt=bounty+paper+towel
但返回的 URL 不完整。因为当我这样做时
scrapy shell the_url_above
然后
view(response)
网页未完全加载。所以我的问题是:
- 这个问题的原因是什么? (为什么我没有得到 404 而是一个不完整的响应)
- 有哪些潜在的处理方法?
该页面的数据似乎是用 javascript 加载的。如果您检查页面(例如 firebug 网络选项卡),您会看到一旦加载基本页面,产品就会被 javascript 加载,它向 [=] 发送 POST 请求12=] 内容:
{"p":"1", # seems to be page number
"s":"15", # page size
"sort":"relevance",
"view":"allView",
"geoTargetEnabled":false,
"q":"bounty paper towel", # search query
"requestType":"search",
"deviceType":"desktop"}
您可以使用 scrapy 发送此请求:
yield Request('http://www.walgreens.com/svc/products/search',
method='POST',
body=<the json from above>)
您应该会收到一个 json 包含产品数据的对象。
实际上,您甚至可以通过此 link 在浏览器中查看响应: http://www.walgreens.com/svc/products/search?p=1&s=15&sort=relevance&view=allView&geoTargetEnabled=false&q=bounty%20paper%20towel&requestType=search&deviceType=desktop