爬虫学习总结——————血狱魔帝

本文讨论了Scrapy爬虫框架在实际应用中的复杂性,指出其对初学者的难度以及在大型系统中的局限性。作者提出了两种不同Item的使用方式,并展示了如何在pipelines中处理不同类型的数据。在应对不同编号格式时,提出了条件判断来避免错误。此外,还分享了一个基于Redis的增量式爬虫项目案例。
摘要由CSDN通过智能技术生成

1,总结一下,爬虫的工作量要么在反爬,要么在调度等业务逻辑,本身只是一个 requests.get 而已,scrapy 提供的种种抽象对于初学者太复杂,大型系统又用不上,所以个人不推荐使用包括但不限于 scrapy 在内的所有爬虫框架。
2,调用使用两个不同的item:
-item.py中
class SunproItem(scrapy.Item):
content=scrapy.Field()
class SunproItem_second(scrapy.Item):
title=scrapy.Field()
status=scrapy.Field()
-sun.py中
from sumPro.item import SunproItem_second,SunproItem
def parse_detail下
item=SunproItem()
item[‘content’]=content
yield item
def parse_item(self,response)下
item= SunproItem_second()
item[‘title’]=title
item[‘status’]=status
yield item
-pipelines.py
def process_item()
if items.class.name’SunproItem’:
content=item[‘content’]
执行sql
else:
title=item[‘title’]
status=item[‘status’]
执行sql
return item
3,用编号做数据统一标题和内容、内容--------用num=scrapy.Field()达到
-item.py
class SunproItem(scrapy.Item):
content=scrapy.Field()
num=scrapy.Field()
class SunproItem_second(scrapy.Item):
title=scrapy.Field()
status=scrapy.Field()
num=scrapy.Field()
-sun.py#tr_list=tr.xpath(‘/html/body/div[2]/div[3]/ul[2]/li’)
def parse_item()
status=tr.xpath()
num=tr.xpath(‘./span[1]/text()’).get()
item=SunproItem_second()
,…
item[‘num’]=num
def parse_detail()

content=‘’.join(content)
num=response.xpath(‘/html/body/div[3]/div[2]/div[2]/div[1]/span[4]/text()’).get()
#由于解析到的是编号:311241,需要的是:后面的数字,-1为要到最后所有的数字
num=num.split(‘:’)[-1]
item=SunproItem()

-pipelines.py
class SunproPipeline
def process_item()
if item.class.name

content=…
num=item[‘num’]
#执行sql
print(content,num)
else:

status=…
num=item[‘num’]
#执行sql
print(title.status,num)
-setting.py
#开启管道
item_pipelines={

}
4,scrapy crawl sun
5,由于有的编号存储不是上述格式,导致split的错误
-sun,py

num=response.xpath()
#若num不为空,提交item
if num:
num=num.split()p[-1]

yield item
3,zls为增量式scrapy根据redis的对4567电影网的爬取项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值