Python网络爬虫05---Scrapy实例

2022-03-03 09:33:57 浏览数 (1)

了解了Scrapy工作原理后 ,就要动手写一个爬虫的例子了。

本节以建立爬取 http://books.toscrape.com/ 网站为例,因为这个是经典的研究爬虫的网站。

环境准备:安装Scrapy

用Scrapy创建一个爬虫的步骤如下:

(1)创建scrapy工程

scrapy startproject books_toscrape

(2) 创建爬虫

cd books_toscrape

scrapy genspider toscrape

此时会在spiders目录下产生 toscrape.py的爬虫spider

(3) 在工程目录下创建调试文件main.py

''':cvar

爬虫的主入口启动文件,便于scrapy启动,调试工作

'''

books_toscrape/main.py

内容如下:

代码语言:javascript复制
import os, sys
from scrapy.cmdline import execute
sys.path.append(os.path.dirname(os.path.abspath(file)))  #当前main.py的文件夹路径
SPIDER_NAME = "toscrape"
execute(["scrapy", "crawl",  SPIDER_NAME])

(4) 配置文件settings.py中的修改

代码语言:javascript复制
Obey robots.txt rules
ROBOTSTXT_OBEY = False

(5)在spiders中编写具体的爬取逻辑

代码语言:javascript复制
import scrapy
class ToscrapeSpider(scrapy.Spider):
    name = 'toscrape'
    allowed_domains = ['books.toscrape.com']
    start_urls = ['http://books.toscrape.com/']  # 要验证start_urls的合法性
    def parse(self, response):
        book_list = response.xpath("//ol[@class='row']/li")
        # print(book_list)
        for book in book_list:
            book_title = book.xpath('./article/h3/a/text()').extract_first()  # xpath获取网页元素的方法比较灵活,
            img_url = book.xpath('./article/div[@class="image_container"]/a/img/@src').extract_first()
            print(book_title, img_url)

(6)开始调试

进入main.py文件,点击右键调试,进入调试模式。

spiders/toscrape.py文件中的parse函数中设置断点,尝试采用xpath解析此页面中的部分书籍数据。

开始进入调试模式,就可以进入scrapy了

【运行结果】:

爬取的结果爬取的结果

这个结果只是打印在控制台上,当然也可以按需进行其他处理了。

以上就是运用Scrapy创建的一个简单的爬虫实例,稍微复杂一些的爬虫也是按照这个方式做出来的,只是爬取逻辑不同而已。

0 人点赞