Scrapy创建项目、爬虫文件

发布时间 2023-07-17 11:35:08作者: 蕝戀

创建项目

执行命令

scrapy startproject <项目名>

项目结构

创建爬虫文件

  • 方式一:通过命令生成
scrpay genspider <爬虫名(必须唯一)> <domain>

<爬虫名>: 必须时唯一的
<domain>: 这个随意填,因为后期会修改爬虫文件中的start_url属性。
  • 方式二:在项目的spider包下,自己编写一个类,并继承爬虫类(Spider或CrawlSpider)
"""

CrawlSpider类型的爬虫会根据指定的rules规则自动找到url比自动爬取。

优点:适合整站爬取,自动翻页爬取
缺点:比较难以通过meta传参,只适合一个页面就能拿完数据的。

"""
class TaobaoSpider(CrawlSpider):
    name = "taobao"
    allowed_domains = ["taobao.com"]
    start_urls = ["https://taobao.com"]

    # crawl类型的爬虫特有的规则定义
    rules = (
        # LinkExtractor链接提取类,根据allow定义的正则表达式从网页源码中提取url链接
        Rule(LinkExtractor(allow=r"Items/"), callback="parse_item", follow=True),
        Rule(LinkExtractor(allow=r"Items/"), callback="parse_detail", follow=False),
    )

    def parse_item(self, response):
        item = {}
        #item["domain_id"] = response.xpath('//input[@id="sid"]/@value').get()
        #item["name"] = response.xpath('//div[@id="name"]').get()
        #item["description"] = response.xpath('//div[@id="description"]').get()
        return item