scrapy流程

scrapy 命令:
    scrapy startproject xx(爬虫目录)   创建爬虫目录
    cd xx   进入目录
    scrapy genspilder chouti(爬虫名称) chouti.com(起始url)
    然后编写

    启动爬虫项目:
        scrapy crawl chouti(爬虫名称) --nolog(不看默认日志)

# name = "" 这个是爬虫的名字,必须唯一,在不同的爬虫需要定义不同的名字
# allowed_domains = [] 域名范围,限制爬虫爬取当前域名下的网页
# start_urls =[] 爬取的URL元组/列表。爬虫从这里开始爬取数据,第一次爬取的页面就是从这里开始,其他的URL将会从这些起始的URL爬取的结果中生成
# parse(self,response) 解析网页的方法,每个初始URL完成下载后将调用,调用的时候传入每一个初始URL返回的Response对象作为唯一参数,
# 主要作用1、负责解析返回的网页数据,response.body 2、生成下一页的URL请求


编写:

def parse(self, response):
    # 1.响应
    # response封装了响应相关的所有数据:
    - response.text
    - response.encoding
    - response.request  # 当前响应是由那个请求发起;请求中 封装(要访问的url,下载完成之后执行那个函数)
    - response.url获取抓取的url
    - response.request.url获取抓取的url
    -response.body获取网页内容字节类型
    -response.body_as_unicode()#获取网站内容字符串类型
    # 2. 解析
    # response.xpath('//div[@href="x1"]/a').extract_first() 第一个
    # response.xpath('//div[@href="x1"]/a').extract()   所有
    # response.xpath('//div[@href="x1"]/a/text()').extract()  文本
    # response.xpath('//div[@href="x1"]/a/@href').extract()   属性
    # tag_list = response.xpath('//div[@href="x1"]/a')


    # for tag in tag_list:
    #     tag.xpath('.//p/text()').extract_first()

# parse() 方法的执行机制
# 使用yield返回数据,不要使用return。parse就会被当做一个生成器。scarpy将parse生成的数据,逐一返回
# 如果返回值是request则加入爬取队列,如果是item类型,则交给pipeline处理

# 3. 再次发起请求
# yield Request(url='xxxx',callback=self.parse)

猜你喜欢

转载自www.cnblogs.com/chvv/p/10332456.html