scrapy安装步骤,打开dos窗口,输入:pip install scrapy,安装完成即可,安装完成后可能会出现WARNING,属于是pip警告,和scrapy无关,使用环境为python3.10
首先,在终端输入创建命令:创建项目命令:scrapy startproject taobao
进入taobao目录,输入:scrapy genspider+名字+域名
运行项目命令:scrapy crawl +名称
代码:(.py文件均在创建项目时创建,没有额外创建新的.py文件)
#xiao.py
import scrapy
class XiaoSpider(scrapy.Spider):
name = "xiao" #爬虫名字
allowed_domains = ["4399.com"] #爬虫运行抓取的域名
start_urls = ["https://www.4399.com/special/13.htm"] #起始页面
def parse(self, response): #该方法默认用来处理解析
# response.json() #获取json
# response.xpath() #数据解析
# response.css() #通过css对数据进行解析
# txt = response.xpath("//ul[@class='tm_list']/li/a/b/text()").extract() #提取内容extract()
# print(txt)
txt_list = response.xpath("//ul[@class='tm_list']/li")
for li in txt_list:
name = li.xpath("./a/b/text()").extract_first() #extract_first()提取一项内容,如果没有,返回None
categroy = li.xpath('./em/a/text()').extract_first()
date = li.xpath('./em/text()').extract_first()
print(name)
print(categroy)
print(date)
print('-'*200)
dic = {
"name" : name,
"categroy" :categroy,
"date" :date
}
#需要用yield将数据传给管道
yield dic #节约运行内存,如果返回的是数据,直接可以认为是给了管道pipline
#自行添加:
LOG_LEVEL ='WARNING'
大概在第67行
#数据管道,解除注释即可开启管道
ITEM_PIPELINES = {
#key:管道的路径
#value:管道的优先级,数越小,优先级越高。默认300
"game.pipelines.GamePipeline": 300,
"game.pipelines.NewPipeline": 299,
}
#管道默认不生效,需要去setting里面去开启管道
class GamePipeline:
def process_item(self, item, spider): #方法定死,不可修改,处理数据的专用方法,item:数据,spider:爬虫
print(item)
print(spider.name)
print('*'*200)
return item #传递给下一个管道
#管道默认不生效,需要去setting里面去开启管道
class NewPipeline:
def process_item(self, item, spider): #方法定死,不可修改,处理数据的专用方法,item:数据,spider:爬虫
item ['rilgou'] = '管道测试,日了狗'#向管道中插入数据,item['key'] = 'value'
return item #传递给下一个管道