前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python网络爬虫05---Scrapy实例

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

原创
作者头像
软件架构师Michael
发布2022-03-03 09:33:57
4490
发布2022-03-03 09:33:57
举报
文章被收录于专栏:软件工程师Michael

了解了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创建的一个简单的爬虫实例,稍微复杂一些的爬虫也是按照这个方式做出来的,只是爬取逻辑不同而已。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档