阿里大佬手把手教你学会如何安装Scrapy并创建项目(入门案例)

Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试,有时也称为蜘蛛或蜘蛛机器人,通常简称为爬虫。

为什么要用Scrapy?

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。

可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。Scrapy 使用 Twisted这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活地完成各种需求。Scratch,是抓取的意思,这个Python的爬虫框架叫Scrapy,大概也是这个意思吧。

Scrapy是一个用python编写的框架,可以简化这一过程。使用此工具可以构建复杂程度各异的爬虫。

Scrapy演示,我将使用提供的查询字符串并从Google爬取相关链接。

代码

首先,导入相关的库

import scrapy
import re
from scrapy.linkextractors import LinkExtractor
import sys
from scrapy import Selector

给google url分配给一个变量。

gURL = 'https://www.google.com/search?q='

现在定义类。

class webSpider(scrapy.Spider):

    name = 'webCrawler'
    start_urls = []
    QUERYSTRING = ''

webSpider是类的名称。 webCrawler是搜索器的名称。在scrapy框架内,将使用该名称创建一个项目。 start_urls = []是scrapy进行抓取的网址列表,而QUERYSTRING是Google查询

可以在Scrapy的框架内调用Scrapy,并通过Scrapy的外壳对其进行测试。

def __init__(self, QUERY, *argv, **kwargv):
        super(webSpider, self).__init__(*argv, **kwargv)        
        self.QUERYSTRING = QUERY
        self.start_urls = [gURL+QUERY]

现在,我可以从外部脚本调用Google QUERY,并在start_urls中加载Google搜索的基本URL 。如果scrapy看到start_urls,它将加载列表中提到的url并启动爬网。现在的目的是爬取Google报告的搜索结果。

定义parse函数:

def parse(self, response):

            xlink = LinkExtractor()
            link_list=[]

            for link in xlink.extract_links(response):
                if len(str(link))>200 or self.QUERYSTRING in link.text:
                    surl = re.findall('q=(http.*)&sa', str(link))   
                    if surl:                      
                        link_list.extend(surl)                  

            print(link_list)

scrapy加载start_urls中提到的URL并发出标准的HTTP请求。此函数将解析响应,遍历LinkExtractor检索到的每个链接,检索文本中是否存在我们需要的Google查询,通过正则表达式提取URL并将其存储在列表。

使用外部python脚本调用运行:

#!/usr/bin/env python3

import scrapy
from scrapy.crawler import Crawler, CrawlerProcess
from myspider import webSpider

QUERY = 'what+is+ethical+hacking'

crawler = Crawler(webSpider)
process = CrawlerProcess()
process.crawl(webSpider, QUERY)
process.start()

有了这个脚本,每当你有一个查询要在google中搜索时,你要做的就是用你的搜索字符串更新变量QUERY并运行。注意:我们之前编写的Spider类需要导入到该文件中。现在检索到的链接可以在需要时用于进一步的抓取。


在这里还是要推荐下我自己建的Python学习群:721195303,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

猜你喜欢

转载自blog.csdn.net/m0_55479420/article/details/114669837