刚学爬虫,出现了个问题,运行的时候显示unhandled error in deferred,下面是代码

盖茨比已死 2017-10-08 08:13:25
# -*- coding: utf-8 -*-
import scrapy
import urllib.request
from scrapy.http import request
import re
import ssl
from shop.items import ShopItem
class TbSpider(scrapy.Spider):
name = 'tb'
allowed_domains = ['taobao.com']
start_urls = (
'https//www.taobao.com/',
)

def parse(self, response):
key="坚果"
for i in range(0,101):
url="http://s.taobao.com/search?q="+str(key)+"&search_type=item&s="+str(44*i)
yield request(url=url,callback=self.page)
pass
def page(self,response):
#title=reponse.xpath("/html/head/title").extract()
body=response.body.decode("utf-8","ignore")
patid='"nid":"(.*?)"'
allid=re.compile(patid).findall(body)
print(allid)
for j in range(0,len(allid)):
thisid=allid[j]
url1="https://item.taobao.com/item.htm?id="+str(thisid)
yield request(url=url1,callback=self.next)
def next(self,response):
item=ShopItem()
item["title"]=response.xpath("//h3[@class='tb-main-title']/@data-title").extract()
item["link"]=response.url
item["price"]=response.xpath("em[@class='tb-rmb-num']/text()").extract()
patid='id=(.*?)$'
thisid=re.compile(patid).findall(response.url)
commenturl="http://rate.taobao.com/detailCount.do?callback=jsonp100&itemId="+str(thisid)
commentdata=urllib.request.urlopen(commenturl).read().decode("utf-8","ignore")
pat='"count":(.*?)}'
item["comment"]=re.compile(pat).findall(commentdata)
yield item

...全文
408 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,717

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧