scrapy框架初级

scrapy入门教程:https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html

一、安装

python模块网站,应用文件放置在scrips下,whl:https://www.lfd.uci.edu/~gohlke/pythonlibs/

Scrapy框架依赖 Twistid需要再上边网站下载,放置scrips下;

??pip install C:\python\Anaconda3\Twisted-18.7.0-cp36-cp36m-win_amd64.whl

??pip install scrapy

二、创建Scrapy项目

1.由于pychram没有集成环境,需要执行命令创建,执行完,用pychram选择新窗口打开;

??????????scrapy startproject  projectname

2.创建爬虫文件执行命令如下:

命令部分??????????????????文件名  爬取得网站

scrapy genspider baidu baidu.com

scrapy genspider -t crawl baidu baidu.com

3配置文件修改:

settings.py文件

USER_AGENT = ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36 Maxthon/5.2.3.6000‘

# Obey robots.txt rulesROBOTSTXT_OBEY = False
DOWNLOAD_DELAY = 3
ITEM_PIPELINES = {   ‘xiaoshuo_pc.pipelines.XiaoshuoPcPipeline‘: 300,}

4运行程序:

scrapy crawl name(变量值)

scrapy crawl name -o book.json(输出到文件{json、xml、csv})

scrapy crawl name -o book.json -t json(-t 代表格式输出,一般忽略)

**第一次运行的时候,我遇到no module named win32API错误,这是因为Python没有自带访问windows系统API的库的,需要下载第三方库。库的名称叫pywin32,可以从网上直接下载,下载链接:http://sourceforge.net/projects/pywin32/files%2Fpywin32/ (下载适合你的Python版本)下载后放置到scripts目录下双机运行,即可((或者pip install pypiwin32))

三、小说获取示例代码:

创建入口执行文件main.py

from scrapy.cmdline import executeexecute("scrapy crawl zol".split()) # zol为zol文件中的变量定义的名
class ShiqikSpider(scrapy.Spider):    name = ‘shiqik‘    allowed_domains = [‘17k.com‘]    start_urls = [‘https://www.81zw.us/book/1379/6970209.html‘]

def parse(self, response):        title=response.xpath(‘//div[@class="bookname"]/h1/text()‘).extract_first()        content=‘‘.join(response.xpath(‘//div[@id="content"]/text()‘).extract()).replace(‘   ‘,‘\n‘)        yield {"title":title,"content":content}        next_page=response.xpath(‘//div[@class="bottem2"]/a[3]/@href‘).extract_first()        if next_page.find(".html")!=-1:            print("继续下一个url")            new_url=response.urljoin(next_page)            yield scrapy.Request(new_url,callback=self.parse,dont_filter=True)

四、小说获取示例代码:

 

class BayizhongwenSpider(CrawlSpider):    name = ‘bayizhongwen‘    allowed_domains = [‘81zw.us‘]    # start_urls = [‘https://www.81zw.us/book/1215/863759.html‘]    start_urls = [‘https://www.81zw.us/book/1215‘]

rules = (        Rule(LinkExtractor(restrict_xpaths=r‘//dl/dd[2]/a‘), callback=‘parse_item‘, follow=True),        Rule(LinkExtractor(restrict_xpaths=r‘//div[@class="bottem1"]/a[3]‘), callback=‘parse_item‘, follow=True),    )    def parse_item(self, response):        title=response.xpath(‘//div[@class="bookname"]/h1/text()‘).extract_first()        content=‘‘.join(response.xpath(‘//div[@id="content"]/text()‘).extract()).replace(‘   ‘,‘\n‘)        print({"title":title,"content":content})        yield {"title":title,"content":content}

一、创建项目

(venv) C:\Users\noc\PycharmProjects>scrapy startproject tupian

二、创建app

(venv) C:\Users\noc\PycharmProjects\tupian>scrapy genspider zol zol.com.cn

三、修改配置信息

settings.py文件:

# Crawl responsibly by identifying yourself (and your website) on the user-agentUSER_AGENT = ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36‘

# Obey robots.txt rulesROBOTSTXT_OBEY = False
DOWNLOAD_DELAY = 3
# Configure item pipelines# See https://doc.scrapy.org/en/latest/topics/item-pipeline.htmlITEM_PIPELINES = {   # ‘tupian.pipelines.TupianPipeline‘: 300,    ‘scrapy.contrib.pipeline.images.ImagesPipeline‘: 300,}# 增加图片存放目录IMAGES_STORE=‘e:/img‘

四、创建入口执行文件start.py

from scrapy.cmdline import executeexecute("scrapy crawl zol".split()) # zol为zol文件中的变量定义的名

五、主文件代码:

import scrapy

class ZolSpider(scrapy.Spider):    name = ‘zol‘    allowed_domains = [‘zol.com.cn‘]    start_urls = [‘http://desk.zol.com.cn/bizhi/7239_89590_2.html‘]  # 爬取图片页面的地址

def parse(self, response):        image_url = response.xpath(‘//img[@id="bigImg"]/@src‘).extract()  # 爬取第一张图片的地址        image_name = response.xpath(‘string(//h3)‘).extract_first()  # 爬取图片名称        yield {"image_url": image_url, "image_name": image_name}  # 推送        next_page = response.xpath(‘//a[@id="pageNext"]/@href‘).extract_first()  # 爬取图片下一张按钮的地址        if next_page.find(‘.html‘) != -1:  # 判断最后一张图片地址如果不包含.html            yield scrapy.Request(response.urljoin(next_page), callback=self.parse)

 
六、middlewares文件

from tupian.settings import USER_AGENTfrom random import choicefrom fake_useragent import UserAgent

# User-Agent设置class UserAgentDownloaderMiddleware(object):    def process_request(self, request, spider):        # if self.user_agent:        # request.headers.setdefault(b‘User-Agent‘,choice(USER_AGENT))        request.headers.setdefault(b‘User-Agent‘, UserAgent().random)

# 代理设置class ProxyMiddleware(object):    def process_request(self, request, spider):        # request.meta[‘proxy‘]=‘http://ip:port‘        request.meta[‘proxy‘]=‘http://124.235.145.79:80‘        # request.meta[‘proxy‘]=‘http://user:[email protected]:port‘        # request.meta[‘proxy‘]=‘http://398707160:[email protected]:16816‘

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

原文地址:https://www.cnblogs.com/returnes/p/9851197.html

时间: 2024-08-02 09:55:03

scrapy框架初级的相关文章

Scrapy框架初级篇

1.概念:scrapy.框架. Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板.对于框架的学习,重点是要学习其框架的特性.各个功能的用法即可.2.安装:Linux: pip3 install scrapy Windows: a. pip3 install wheel b. 下载twisted http://www.lfd.uci.edu/~go

Python爬虫进阶三之Scrapy框架安装配置

初级的爬虫我们利用urllib和urllib2库以及正则表达式就可以完成了,不过还有更加强大的工具,爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此整理如下. Windows 平台: 我的系统是 Win7,首先,你要有Python,我用的是2.7.7版本,Python3相仿,只是一些源文件不同. 官网文档:http://doc.scrapy.org/en/latest/intro/install.html,最权威哒,下面是我的亲身体验过程. 1.安装Python 安装过程我就不多说啦,我的电

Python爬虫进阶之Scrapy框架安装配置

Python爬虫进阶之Scrapy框架安装配置 初级的爬虫我们利用urllib和urllib2库以及正则表达式就可以完成了,不过还有更加强大的工具,爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此整理如下. Windows 平台: 我的系统是 Win7,首先,你要有Python,我用的是2.7.7版本,Python3相仿,只是一些源文件不同. 官网文档:http://doc.scrapy.org/en/latest/intro/install.html,最权威哒,下面是我的亲身体验过程. 1

Python爬虫从入门到放弃(十一)之 Scrapy框架整体的一个了解

这里是通过爬取伯乐在线的全部文章为例子,让自己先对scrapy进行一个整理的理解 该例子中的详细代码会放到我的github地址:https://github.com/pythonsite/spider/tree/master/jobboleSpider 注:这个文章并不会对详细的用法进行讲解,是为了让对scrapy各个功能有个了解,建立整体的印象. 在学习Scrapy框架之前,我们先通过一个实际的爬虫例子来理解,后面我们会对每个功能进行详细的理解.这里的例子是爬取http://blog.jobb

windows下scrapy框架学习笔记—'scrapy' 不是内部或外部命令

最近几天在深入的学习scrapy框架,但是装完各种需要的基础包之后却发现scrapy命令在别的路径下都用不了,我一开始是把python安装在F:\Python路径下的,安装了scrapy后它默认都会安装在这个路径下,scrapy在路径F:\Python\Scripts路径下,我的scrapy命令只能在此路径下用,因此创建什么工程也都只能在此文件下. 想了一下它的工作原理:它在F:\Python\Scripts路径下,就会在Scripts文件下存在一个scrapy批处理文件,那么在DOS下想要命令

scrapy框架设置代理

网易音乐在单ip请求下经常会遇到网页返回码503的情况经查询,503为单个ip请求流量超限,猜测是网易音乐的一种反扒方式因原音乐下载程序采用scrapy框架,所以需要在scrapy中通过代理的方式去解决此问题在scrapy中使用代理,有两种使用方式 1.使用中间件2.直接设置Request类的meta参数 下面依次简要说明下如何使用 方式一:使用中间件要进行下面两步操作 在文件 settings.py 中激活代理中间件ProxyMiddleware在文件 middlewares.py 中实现类P

python爬虫scrapy框架——人工识别登录知乎倒立文字验证码和数字英文验证码(2)

操作环境:python3 在上一文中python爬虫scrapy框架--人工识别登录知乎倒立文字验证码和数字英文验证码(1)我们已经介绍了用Requests库来登录知乎,本文如果看不懂可以先看之前的文章便于理解 本文将介绍如何用scrapy来登录知乎. 不多说,直接上代码: import scrapy import re import json class ZhihuSpider(scrapy.Spider): name = 'zhihu' allowed_domains = ['www.zhi

[Python][Scrapy 框架] Python3 Scrapy的安装

1.方法(只介绍 pip 方式安装) PS.不清楚 pip(easy_install) 可以百度或留言. cmd命令: (直接可以 pip,而不用跳转到 pip.exe目录下,是因为把所在目录加入 Path 环境变量中) 通过 pip install 安装的好处: 安装起来非常的方便 安装 scrapy 和依赖包 包的一致性可以保证 2.可能遇到的一些问题 安装到的时候有些自动装不上: 上图显示装 'twisted.test.raiser' 这个子扩展包的时候自动装不上去,因为需要 VC++ 1

使用scrapy框架---爬小说,入库

本人步骤: 1>setting.py: BOT_NAME = 'newding' SPIDER_MODULES = ['newding.spiders']NEWSPIDER_MODULE = 'newding.spiders' ROBOTSTXT_OBEY = True ITEM_PIPELINES = { 'newding.pipelines.NewdingPipeline': 300,} 以上配置:创建项目会自动出现这些 以下是想要入数据库的(阶段): MYSQL_USER = 'root'