Python 三.创建第一个scrapy爬虫项目(分布式爬虫打造搜索引擎)

1.安装pywin32
打开cmd窗口

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywin32 

2.安装Twisted网络数据处理的集成包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Twisted

3.安装scrapy

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy

4.查看scrapy的版本号

scrapy version

5.进入需要创建爬虫项目的工作空间

scrapy startproject ArticleSpider

在这里插入图片描述
创建项目成功

6.用pycharm打开项目结构如下

在这里插入图片描述

7.使用scrapy genspider命令创建爬虫主文件,指定爬取的url
生成爬虫主文件

scrapy genspider jobbole blog.jobbole.com

在这里插入图片描述
8.再看项目结构,已经多了jobbole.py这个文件
在这里插入图片描述

9.使用scrapy crawl 启动爬虫,查看是否能够访问url,如果200说明访问成功,爬虫框架搭建成功

scrapy crawl jobbole

在这里插入图片描述
10.生成main.py文件,便于调试
项目名称ArticleSpider上右键,new ,Python File
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样就生成了main.py文件
11.main.py加入文件指向

from scrapy.cmdline import execute

import sys
import os

print(os.getcwd())
execute(["scrapy","crawl","jobbole"])

在这里插入图片描述
12.settings.py配置
将ROBOTSTXT_OBEY 属性改为False

# Obey robots.txt rules
ROBOTSTXT_OBEY = False

在这里插入图片描述

13.运行项目在这里插入图片描述
14.打印结果
在这里插入图片描述

成功,跟第9点的是一样的

14.抓取数据
我们的目标,抓取到标题,日期,阅读,内容
在这里插入图片描述
13.xpath路径,使用Chrome浏览器F12,选择指针,定位到标题,然后在右侧标题上右键,选择复制Xpath,得到

//*[@id="index-left-graphic"]/div[1]/div[2]/div[1]/a/h1

这个就是我们需要的标题路径

在这里插入图片描述
14.回到项目的jobbole.py,提取response中的内容

import re

import scrapy


class JobboleSpider(scrapy.Spider):
    name = 'jobbole'
    allowed_domains = ['blog.jobbole.com']
    start_urls = ['http://blog.jobbole.com/']

    def parse(self, response):
        title = response.xpath('//*[@id="index-left-graphic"]/div[1]/div[2]/div[1]/a/h1/text()').extract()[0]
        print(title)

        content = response.xpath('//*[@id="index-left-graphic"]/div[1]/div[2]/div[2]/text()').extract()[0]
        print(content)

        date = response.xpath('//*[@id="index-left-graphic"]/div[1]/div[2]/div[3]/div[1]/span[1]/text()').extract()[0]
        print(date)

        read1 = response.xpath('//*[@id="index-left-graphic"]/div[1]/div[2]/div[3]/div[1]/span[2]/text()').extract()[0]
        read = re.findall(r"\d+\.?d*",read1)[0]
        print(read)
        pass

结果:
在这里插入图片描述
这个基本没有什么难度,只是评论多做了一个从字符串中提取数字的动作。

15.在代码中调试,每次都需要请求一次,会影响效率。这里我们还可以多学习一项技巧,使用cmd窗口,用scrapy shell方式进行调试,得到结果后,再到写到代码中。首先进入项目目录下,运行

scrapy shell http://blog.jobbole.com/

结果
在这里插入图片描述
这个跟我们在jobole.py得到的response是一样的
16.获取title

title=response.xpath('//*[@id="index-left-graphic"]/div[1]/div[2]/div[1]/a/h1/text()')

在这里插入图片描述
其他的内容获取方式也基本一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值