Python3 scrapy调试:已爬网(302)<;获取https…>;(参考:https…)

Python3 scrapy调试:已爬网(302)<;获取https…>;(参考:https…),python,python-3.x,scrapy,Python,Python 3.x,Scrapy,我是scrapy的新手,我想从中国的一个推特类型的网站——微博上抓取一些用户的数据。当我运行“scrapy crawl weibo_spider-o data.csv”时,我一直收到这个消息: 2019-11-10 17:49:10[scrapy.core.engine]调试:爬网(302)(参考:无) 2019-11-10 17:49:14[刮屑核心引擎]调试:爬网(302)(参考:https://weibo.cn/2803301701/info) 2019-11-10 17:49:14[sc

我是scrapy的新手,我想从中国的一个推特类型的网站——微博上抓取一些用户的数据。当我运行“scrapy crawl weibo_spider-o data.csv”时,我一直收到这个消息:

2019-11-10 17:49:10[scrapy.core.engine]调试:爬网(302)(参考:无)
2019-11-10 17:49:14[刮屑核心引擎]调试:爬网(302)(参考:https://weibo.cn/2803301701/info)
2019-11-10 17:49:14[scrapy.core.scraper]调试:从
{“id”:“2803301701”,“爬网时间”:1573379351}
2019-11-10 17:49:18[刮屑核心引擎]调试:爬网(302)(参考:https://weibo.cn/u/2803301701)
2019-11-10 17:49:18[刮芯机]错误:十字轴错误处理(参考:https://weibo.cn/u/2803301701)
回溯(最近一次呼叫最后一次):
文件“/opt/anaconda3/lib/python3.7/site packages/scrapy/utils/defer.py”,第102行,在iter\u errback中
下一个(it)
文件“/opt/anaconda3/lib/python3.7/site packages/scrapy/spidermiddleware/offsite.py”,第30行,进程中输出
对于结果中的x:
文件“/opt/anaconda3/lib/python3.7/site packages/scrapy/spidermiddleware/referer.py”,第339行,在
返回(_set_referer(r)表示结果中的r或())
文件“/opt/anaconda3/lib/python3.7/site packages/scrapy/spidermiddleware/urlength.py”,第37行,在
返回(结果中的r表示r或()如果_过滤器(r))
文件“/opt/anaconda3/lib/python3.7/site packages/scrapy/spidermiddleware/depth.py”,第58行,在
返回(结果中的r表示r或()如果_过滤器(r))
文件“/Users/lveshenyichou/Documents/WeiboSpider simple/sina/spider/weibospikder.py”,第121行,在parse_tweet中
tweet_nodes=tree_node.xpath(“//div[@class=“c”和@id]”)
AttributeError:“非类型”对象没有属性“xpath”
错误在最后一行。然而,我认识到我之所以有一个“非类型”对象的原因应该是“调试:爬网(302)…”。我不知道如何处理这些错误。 以下是我的一些代码:

类微波面(Spider):
name=“微博蜘蛛”
基本url=”https://weibo.cn"
handle\u httpstatus\u list=[302]
def start_请求(自我):
开始\u uids=[
'2803301701', 
]
对于启动uid中的uid:
屈服请求(url=”https://weibo.cn/%s/info%uid,callback=self.parse\u信息)
def解析_信息(自身、响应):
信息项=信息项()
信息项['crawl\u time']=int(time.time())
选择器=选择器(响应)
信息项[''id']=re.findall('(\d+)/info',response.url)[0]
text1=“;”.join(selector.xpath('body/div[@class=“c”]//text()).extract())
nick_name=re.findall('昵称;?[::]?(.*?;”,text1)
性别=关于findall('性别;?[::]?(.*?;”,text1)
地点=re.findall('地区;?[::]?(.*?;”,text1)
简介=re.findall('简介;?[::]?(.*?;”,text1)
生日=关于芬德尔的生日生日;?[::]?(.*?;”,text1)
性取向=re.findall('性取向;?[::]?(.*?;”,text1)
情绪=关于findall('感情状况;?[::]?(.*?;”,text1)
vip_级别=re.findall('会员等级;?[::]?(.*?;”,text1)
身份验证=re.findall('认证;?[::]?(.*?;”,text1)
labels=re.findall('标签;?[::]?(.*?)更多>>', 文本1)
如果nick_name和nick_name[0]:
信息项[“nick\u name”]=nick\u name[0]。替换(u“\xa0”,“”)
如果性别和性别[0]:
信息_项[“性别”]=性别[0]。替换(u“\xa0”,“”)
如果地点和地点[0]:
place=place[0]。替换(u“\xa0”,“0”)。拆分(“”)
信息项目[“省”]=地点[0]
如果长度(位置)>1:
信息项[“城市”]=地点[1]
如果简介和简介[0]:
信息项[“简介”]=简介[0]。替换(u“\xa0”,“”)
如果生日和生日[0]:
信息_项['birth']=生日[0]
如果性别取向和性别取向[0]:
如果性别方向[0]。替换(u“\xa0”,“”)=性别[0]:
信息项[“性别取向”]=”同性恋"
其他:
信息项[“性别取向”]=”异性恋"
如果情绪和情绪[0]:
信息_项[“情绪”]=情绪[0]。替换(u“\xa0”,“”)
如果vip_级别和vip_级别[0]:
信息项[“vip级别”]=vip级别[0]。替换(u“\xa0”,“”)
如果身份验证和身份验证[0]:
信息\u项[“身份验证”]=身份验证[0]。替换(u“\xa0”,“”)
如果标签和标签[0]:
信息_项[“标签”]=标签[0]。替换(u“\xa0”,“,”)。替换(“;”,“”)。带(“,”)
request\u meta=response.meta
请求元['item']=信息项
屈服请求(self.base_url+'/u/{}.格式(信息项['''u id']),
callback=self.parse\u进一步的\u信息,
meta=请求\元,不\过滤=真,优先级=1)
def解析更多信息(自我、响应):
text=response.text
information\u item=response.meta['item']
tweets_num=re.findall('微博\[(\d+\]”,文本)
如果tweets_num:
信息项['tweets\u num']=int(tweets\u num[0])
跟随着_num=re.findall('关注\[(\d+\]”,文本)
如果如下所示:
信息项['follows\u num']=int(follows\u num[0])
fans_num=re.findall('粉丝\[(\d+\]”,文本)
如果风扇数量:
信息项['fans\u num']=int(fans\u num[0])
产量信息
#推特
屈服请求(url=self.base_url+'/{}/profile?page=1'.格式(信息项['''u id']),
callback=self.parse_tweet,
优先级=1)
#跟随者
屈服请求(url=self.base_url+'/{}/follow?page=1'。格式(