Scrapy爬虫框架的安装和使用
Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted 14.0、lxml 3.4和pyOpenSSL 0.14。在不同的平台环境下,它所依赖的库也各不相同,所以在安装之前,最好确保把一些基本库安装好。
官方网站:https://scrapy.org
官方文档:https://docs.scrapy.org
PyPI:https://pypi.python.org/pypi/Scrapy
GitHub:https://github.com/scrapy/scrapy
中文文档:http://scrapy-chs.readthedocs.io
一、安装Scrapy
如果你的Python是使用Anaconda安装的
conda install Scrapy
Windows下的安装
下载安装pyOpenSSL https://pypi.python.org/pypi/pyOpenSSL#downloads
下载安装Twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
下载安装PyWin32 https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/
pip3 install Scrapy
CentOS和Red Hat
sudo yum groupinstall -y development tools
sudo yum install -y epel-release libxslt-devel libxml2-devel openssl-devel
pip3 install Scrapy
Ubuntu、Debian和Deepin
sudo apt-get install build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev
pip3 install Scrapy
二、scrapy 的使用
1、’创建项目
下面的命令可以创建一个Scrapy爬虫项目,它为我们规定了标准的项目格式。
scrapy startproject myproject [project_dir] #可以直接添加路径,也可以去你的工作目录省略路径选项
创建后用ide工具打开,项目结构:spiders模块中放置所有爬虫,scrapy.cfg是项目的全局配置文件,其余文件是Scrapy的组件。
2、创建爬虫
使用下面的命令可以创建一个爬虫,爬虫会放置在spider模块中。
scrapy genspider mydomain mydomain.com #需要进入项目目录,后面是爬虫名字和起始页面
下面代码是生成的爬虫具有基本的结构,我们也可以自己在此基础上编写代码。
# -*- coding: utf-8 -*-
import scrapy class MydomainSpider(scrapy.Spider):
name = "mydomain"
allowed_domains = ["mydomain.com"]
start_urls = ['http://mydomain.com/'] def parse(self, response):
pass
爬虫起启动后会将start_urls中的网址交给一个start-requests的函数执行,然后返回一个response给parse函数,接下来就是自己写了。
如果起始页面是有多个,可以直接写到start_urls中,还可以重写start-requests函数,自己将网址写好后requests提交一个response交给parse,比如很多的网站的多个栏目页面的网址是固定的,就可以少请求一次,少分析一次网页。
3、IDE默认没有scrapy项目,为了方便调试,我们需要新建一个脚本来执行scrapy项目,在项目的目录下新建一个xxx.py的文件,一般我们取名main,或者run,里面写上下面代码,我们的项目就可以在Ide调试了。
from scrapy.cmdline import execute
execute(['scrapy', 'crawl', 'mydomain']) #mydomain是爬虫的名字
4、防反爬虫,你懂得。不管网站有没有反爬,这一步最好都做,特别是需要长期爬的网站,也是对网站基本的尊重。这里主要是user-agent,和代理ip和cookie。
user-agent:可以自己写一个列表循环随机取,也可以安装一个包pip3 install fake-useragent,middlewares.py添加
from fake_useragent import UserAgent #这是一个随机UserAgent的包,里面有很多UserAgent
class RandomUserAgentMiddleware(object):
def process_request(self, request, spider):
ua = UserAgent()
request.headers.setdefault('User-Agent', ua.random) #这样就是实现了User-Agent的随即变换
settings.py的DOWNLOADER_MIDDLEWARES添加两条
DOWNLOADER_MIDDLEWARES = {
'lianjia.middlewares.RandomUserAgentMiddleware': 543,
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':None, #这里要设置原来的scrapy的useragent为None,否者会被覆盖掉
}
代理ip,很重要,可以用免费的,可以买,也可以自建,middlewares.py添加
class RandomProxyMiddleware(object):
'''动态设置ip代理'''
def process_request(self,request,spider):
get_ip = ip #ip为你的代理ip
request.meta["proxy"] = "http://" + get_ip + ':端口' #你的代理方式,ip地址和端口
settings.py的DOWNLOADER_MIDDLEWARES添加一条
DOWNLOADER_MIDDLEWARES = {
'lianjia.middlewares.RandomProxyMiddleware': 542, #代理ip
}
cookie:如果需要使用的,请使用cookie池,如果不需要就关了,settings.py里面
COOKIES_ENABLED = False
还有一点就是爬取过程中的sleep时间最好不要是固定的,比如0-5秒,随机的。
Scrapy爬虫框架的安装和使用的更多相关文章
- Scrapy爬虫框架(1)--安装配置与常用命令
安装与配置 Scrapy有几个安装依赖,一般来说可以直接pip install scrapy,这个过程会自动下载安装其他几个依赖. 上述安装方法不成功,则需要手动安装依赖包 步骤 安装 lxmlpip ...
- Scrapy爬虫框架的安装
Scrapy框架是我在Windows中遇到的最难安装的第三方库,一直不想写这篇博客,但碰巧今天重装了系统,这正好是个机会? 1.安装pywin32:https://sourceforge.net/pr ...
- Python之Scrapy爬虫框架安装及简单使用
题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提 ...
- python3.7.1安装Scrapy爬虫框架
python3.7.1安装Scrapy爬虫框架 环境:win7(64位), Python3.7.1(64位) 一.安装pyhthon 详见Python环境搭建:http://www.runoob.co ...
- 安装scrapy 爬虫框架
安装scrapy 爬虫框架 个人根据学习需要,在Windows搭建scrapy爬虫框架,搭建过程种遇到个别问题,共享出来作为记录. 1.安装python 2.7 1.1下载 下载地址 1.2配置环境变 ...
- Scrapy爬虫框架(实战篇)【Scrapy框架对接Splash抓取javaScript动态渲染页面】
(1).前言 动态页面:HTML文档中的部分是由客户端运行JS脚本生成的,即服务器生成部分HTML文档内容,其余的再由客户端生成 静态页面:整个HTML文档是在服务器端生成的,即服务器生成好了,再发送 ...
- scrapy爬虫框架学习笔记(一)
scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...
- Python爬虫教程-31-创建 Scrapy 爬虫框架项目
本篇是介绍在 Anaconda 环境下,创建 Scrapy 爬虫框架项目的步骤,且介绍比较详细 Python爬虫教程-31-创建 Scrapy 爬虫框架项目 首先说一下,本篇是在 Anaconda 环 ...
- 手把手教你如何新建scrapy爬虫框架的第一个项目(上)
前几天给大家分享了如何在Windows下创建网络爬虫虚拟环境及如何安装Scrapy,还有Scrapy安装过程中常见的问题总结及其对应的解决方法,感兴趣的小伙伴可以戳链接进去查看.关于Scrapy的介绍 ...
随机推荐
- 使用spire.doc导出支持编辑Latex公式的标准格式word
背景 之前有的教辅标注需求,在导出题库的时候希望顺便导出可以查看word,方便线下预览成品效果,因为只是用来预览并且为了沿用前端的样式,当时方案就是直接生成html,写个word的文件头,这样就可以用 ...
- linux 内核源代码情景分析——地址映射的全过程
linux 内核采用页式存储管理.虚拟地址空间划分成固定大小的"页面",由MMU在运行时将虚拟地址映射成某个物理内存页面中的地址.页式内存管理比段式内存管理有很多好处,但是由于In ...
- Android现有工程使用Compose
Android现有工程使用Compose 看了Compose的示例工程后,我们也想使用Compose.基于目前情况,在现有工程基础上添加Compose功能. 引入Compose 首先我们安装 Andr ...
- 直播预告|App 首页如何动态化更新?来看蚂蚁技术专家详解「支付宝」全新卡片技术栈
立即前往直播间预约观看 从icon到card,一场内容前置化的变革 从 Windows 时代开始,应用程序图标就成为了用户(流量)的主入口,一直持续到移动端时代. 图标即入口的方式,虽然足够方便但却不 ...
- 关于Arrays类的静态方法asList()
Array.asList():是数组转成集合的方法 List<String> list = Arrays.asList(new String[]{"AA", " ...
- 【高并发】深入解析Callable接口
大家好,我是冰河~~ 本文纯干货,从源码角度深入解析Callable接口,希望大家踏下心来,打开你的IDE,跟着文章看源码,相信你一定收获不小. 1.Callable接口介绍 Callable接口是J ...
- 【pycharm】Python pip升级及升级失败解决方案,报错:You are using pip version 10.0.1, however version 21.3.1 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.
我已经升级到了最新的版本 安装其他模块过程中出现下面提示,便说明你需要升级pip You are using pip version 10.0.1, however version 21.3.1 is ...
- git删除未被追踪的文件
# 先看看会删掉哪些文件,防止重要文件被误删 git clean -n # 删除 untracked files git clean -f # 连 untracked 的目录也一起删掉 git cle ...
- Python命令行参数及文件读出写入
看完了柯老板的个人编程作业,虽然是评测组不用做此次作业,但还是想对本次作业涉及到利用Python命令行参数以及进行文件读出写入操作做一个简单的总结.(个人编程作业还是想自己能敲一敲,毕竟我的码力还是小 ...
- Django 小实例S1 简易学生选课管理系统 4 实现登录页面
Django 小实例S1 简易学生选课管理系统 第4节--实现登录页面 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 本文涉及到的新的额外知识点: ...