python 爬取数据还要下载scrapy吗_Scrapy下的数据爬取全流程

Scrapy的下载

在终端中输入代码'pip3 install scrapy'。

创建Scrapy项目

假设你希望将项目保存至桌面名为Python的文件夹中。可以在终端中输入'cd ',并将Python文件夹拖拽至其后。换行后,继续输入'scrapy startproject ScrapyProject',此处的ScrapyProject为该项目的名字,可根据情况自行定义。

#示例:

cd /Users/username/Desktop/Python

scrapy startproject ScrapyProject

定义items数据

Scrapy项目创建成功后,我们可以在其所在的文件夹里看到spiders,pipelines.py,middlewares.py,settings.py等一系列文件。我们需要做的是在其中找到items.py,并对其进行修改。此处的重点在于定义所需数据的属性,其中主要会使用到scrapy.Field()。

#示例:

import scrapy

#导入scrapy

class ScrapyItem(scrapy.Item):

#定义一个类ScrapyItem,继承自scrapy.Item

book = scrapy.Field()

#定义书籍名称book的数据属性

author = scrapy.Field()

#定义作者author的数据属性

type = scrapy.Field()

#定义书籍类型type的数据属性

创建爬虫文件

同样在ScrapyProject文件夹内,找到spiders文件夹,并在内创建一个新的爬虫文件,如下图的book.py。(需要与_pychache_及_init_文件同级。)

编辑爬虫文件

此处的爬虫文件为整个Scrapy项目的核心,数据的解析与提取都是在这一步进行的。

#示例:

import scrapy

#导入scrapy。

from bs4 import BeautifulSoup

#导入BeautifulSoup。

from ..items import ScrapyItem

#引用在item.py文件中所创建的ScrapyItem。

class ScrapySpider(scrapy.Spider):

#定义一个爬虫类ScrapySpider,继承自scrapy.Spider

name = 'book'

#定义爬虫的名字为book。

allowed_domains = ['https://www.example.com']

#定义爬虫将要爬取的网址域名。

urls = []

#创建一个链接列表备用。

for page in range(3):

url = 'https://www.example.com/page='+str(page)

start_urls.append(url)

#将网址添加进urls列表。

def parse(self, response):

bs = BeautifulSoup(response.text,'html.parser')

#使用BeautifulSoup解析response。

datas = bs.find_all('book',class_="info")

#用find_all提取元素。

for data in datas:

#遍历data。

item = ScrapyItem()

#实例化ScrapyItem。

item['book'] = data.find('title').text

#提取出书名,并将其放回ScrapyItem类的book属性里。

item['author'] = data.find('author').text

#提取出作者姓名,并将其放回ScrapyItem类的author里。

item['type'] = data.find('type').text

#提取出书籍类型,并将其放回ScrapyItem类的type属性里。

yield item

运行Scrapy程序

在ScrapyProject文件夹内,找到settings.py文档,并更改好user_agent相关信息。之后再在终端输入代码scrapy crawl book即可。(book为此爬虫的名字。)

注:上述内容皆为Mac环境下的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值