python 爬取数据还要下载scrapy吗_在Python3.5下安装和测试Scrapy爬网站

news/2024/5/9 0:01:24/文章来源:https://blog.csdn.net/weixin_30855927/article/details/114400434

本帖最后由 xandy 于 2017-3-2 16:13 编辑

1. 引言

Scrapy框架结构清晰,基于twisted的异步架构可以充分利用计算机资源,是爬虫做大的必备基础。本文将讲解如何快速安装此框架并使用起来。

2. 安装Twisted

2.1 同安装Lxml库

(参考《为编写网络爬虫程序安装Python3.5》3.1节)一样,通过下载对应版本的.whl文件先安装twisted库,下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

60af5b4e56ba833888441adf6f0c0749.gif

python26_1.png (13.67 KB, 下载次数: 64)

1

2016-10-20 14:46 上传

2.2 安装twisted

打开命令提示符窗口,输入命令:

pip install E:\demo\Twisted-16.4.1-cp35-cp35m-win_amd64.whl(下载好的twisted模块的whl文件路径)复制代码

60af5b4e56ba833888441adf6f0c0749.gif

python26_2.png (14.54 KB, 下载次数: 66)

2

2016-10-20 14:46 上传3. 安装scrapy

twisted库安装成功后,安装scrapy就简单了,在命令提示符窗口直接输入命令: pip install scrapy 回车

60af5b4e56ba833888441adf6f0c0749.gif

python26_3.png (58.54 KB, 下载次数: 58)

3

2016-10-20 14:46 上传安装关联模块pypiwin32,在命令提示符窗口直接输入命令: pip install pypiwin32 回车

60af5b4e56ba833888441adf6f0c0749.gif

python26_4.png (8.71 KB, 下载次数: 63)

4

2016-10-20 14:46 上传

4. Scrapy测试,敲一个基于Scrapy框架的爬虫程序

新建一个Scrapy爬虫项目fourth(因为这是继Python3.5安装的第四篇教程,有兴趣的话请从头看起):在任意目录按住shift+右键->选择在此处打开命令提示符窗口(这里默认为E:\demo),然后输入命令:

E:\demo>scrapy startproject fourth复制代码

60af5b4e56ba833888441adf6f0c0749.gif

python26_5.png (8.76 KB, 下载次数: 60)

5

2016-10-20 14:46 上传该命令将会创建包含下列内容的fourth目录:

fourth/

scrapy.cfg

fourth/

__init__.py

items.py

pipelines.py

settings.py

spiders/

__init__.py

...复制代码

修改项目配置文件settings.py,有些网站会在根目录下放置一个名字为robots.txt的文件,里面声明了此网站希望爬虫遵守的规范,Scrapy默认遵守这个文件制定的规范,即ROBOTSTXT_OBEY默认值为True。在这里需要修改ROBOTSTXT_OBEY的值,找到项目目录(这里为:E:\demo\fourth\fourth)下文件settings.py,更改ROBOTSTXT_OBEY的值为False

引入Gooseeker最新规则提取器模块gooseeker.py(下载地址:https://github.com/FullerHua/gooseeker/tree/master/core),拷贝到项目目录下,这里为E:\demo\fourth\gooseeker.py

创建爬虫模块,进入项目目录E:\demo\fourth下,在此处打开命提示符窗口输入命令:

E:\demo\fourth>scrapy genspider anjuke 'anjuke.com'复制代码

60af5b4e56ba833888441adf6f0c0749.gif

python26_6.png (5.53 KB, 下载次数: 56)

6

2016-10-20 14:46 上传该命令将会在项目目录E:\demo\fourth\fourth\spiders下创建模块文件anjuke.py,以记事本打开然后添加代码,主要代码:

# -*- coding: utf-8 -*-

# Scrapy spider 模块

# 采集安居客房源信息

# 采集结果保存在anjuke-result.xml中

import os

import time

import scrapy

from gooseeker import GsExtractor

class AnjukeSpider(scrapy.Spider):

name = "anjuke"

allowed_domains = ["'anjuke.com'"]

start_urls = (

'http://bj.zu.anjuke.com/fangyuan/p1',

)

def parse(self, response):

print("----------------------------------------------------------------------------")

# 引用提取器

bbsExtra = GsExtractor()

# 设置xslt抓取规则

bbsExtra.setXsltFromAPI("31d24931e043e2d5364d03b8ff9cc77e", "安居客_房源")

# 调用extract方法提取所需内容

result = bbsExtra.extractHTML(response.body)

# 打印采集结果

print(str(result).encode('gbk','ignore').decode('gbk'))

# 保存采集结果

file_path = os.getcwd() + "/anjuke-result.xml"

open(file_path,"wb").write(result)

# 打印结果存放路径

print("采集结果文件:" + file_path)复制代码

启动爬虫,进入项目目录E:\demo\fourth下,在此处打开命提示符窗口输入命令:

E:\demo\fourth>scrapy crawl anjuke复制代码

60af5b4e56ba833888441adf6f0c0749.gif

python26_7.png (130.52 KB, 下载次数: 57)

7

2016-10-20 14:46 上传注:网站若发现抓取时报重定向错误了,尝试修改user-agent后,再启动爬虫爬取数据。操作步骤如下:

1、在爬虫项目目录(这里为E:\demo\fourth\fourth)下创建模块文件middlewares.py,以记事本打开后,添加如下代码:

#-*-coding:utf-8-*-

# 随机更换user agent

import random

from scrapy.downloadermiddlewares.useragent import UserAgentMiddleware

class RotateUserAgentMiddleware(UserAgentMiddleware):

def __init__(self, user_agent=''):

self.user_agent = user_agent

def process_request(self, request, spider):

ua = random.choice(self.user_agent_list)

if ua:

request.headers.setdefault('User-Agent', ua)

user_agent_list = [\

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"\

"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",\

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",\

"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",\

"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",\

"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",\

"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",\

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\

"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\

"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\

"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\

"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\

"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",\

"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",\

"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"

]复制代码2、修改项目配置文件settings.py,加上如下代码:

DOWNLOADER_MIDDLEWARES = {

'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':None,

'fourth.middlewares.RotateUserAgentMiddleware':400,

}复制代码

查看保存结果文件,进入Scrapy爬虫项目目录,这里为E:\demo\fourth,找到名称为anjuke-result.xml的文件夹然后打开

60af5b4e56ba833888441adf6f0c0749.gif

python26_8.png (17.9 KB, 下载次数: 63)

8

2016-10-20 14:46 上传

5. 总结

安装pypiwin32时碰到了一次超时断开,再次输入命令重新安装才成功,若重复安装都失败可以尝试连接vpn再安装。下一篇《Python爬虫实战:单页采集》将讲解如何爬取微博数据(单页),同时整合Python爬虫程序以Gooseeker规则提取器为接口制作一个通用的采集器,欢迎有兴趣的小伙伴一起交流进步。

6. 集搜客GooSeeker开源代码下载源

7. 修订历史

2017.03.02 补充报重定向错误解决方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_815039.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在PEA上海做演讲主题:大型、高负载网站架构和应用初探

主题:大型、高负载网站架构和应用初探时间:30-45分钟 开题:163,sina,sohu等网站他们有很多应用程序都是PHP写的,为什么他们究竟是如何能做出同时跑几千人甚至上万同时在线应用程序呢? 挑选性能更好web服务器 单台 Apache web se…

通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行(转载)

ASP.NET 成功的其中一个原因在于它降低了 Web 开发人员的门槛。即便您不是计算机科学博士也可以编写 ASP.NET 代码。我在工作中遇到的许多 ASP.NET 开发人员都是自学成材的,他们在编写 C# 或 Visual Basic 之前都在编写 Microsoft Excel 电子表格。现在,…

网站最大并发数以及服务器配置预估

一.评测网站常用的一些术语: 以www.qq.com为例子,我们可以在站长之家输入www.qq.com获得结果: 日均ip:每天有多少个ip访问qq,我们可以看到qq是接近六千万,然后用的人远不止这些,因为如果在一个…

大型网站架构演变和知识体系

在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的[urljavascript:;]知识[/url]体系,希望能给想从事互联网行业的同学一点初步的概念,:),文中的不对之处也请各位多给点建议,让本文真…

优化网站设计(十一):避免重定向

前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题。 作为通用的原则,雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考 Best Practices f…

普通电脑可以搭建时序数据库吗_如何搭建网站?网站建设需要做哪些准备?

搭建一个网站需要哪些准备?如何搭建属于自己的网站?今天蝈蝈录制了一个视频,从域名注册、域名备案、域名解析、服务器购买、服务器配置搭建、上传代码等方面全过程讲解如何搭建一个网站。如果你是专业人士,请忽略,如果…

大型网站的灵魂——性能

前言 在前一篇随笔《大型网站系统架构的演化》中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去研究实践。所以我…

购物网站讨论1:关于模型那些事

写在最前面:购物网站案例下载 -------------------------------------- 1.这些类对应的业务实体是什么? 2.如何实现数据库连接? 3.类之间的关系是如何的? 4.如何启动数据库迁移? 百度自学知识点:启用自动数…

访问页面要看什么数据包_SEO怎么对页面标题优化,页面优化要注意什么?

页面的标题主要是规定了一些网页的内容,然后去告诉搜索引擎蜘蛛这个页面的大概内容,页面标题也就是搜索引擎来判断页面内容的主要参考信息,这就是网页优化最重要的因素。SEO去优化页面标题可以从下面几方面入手(1)相关且准确每个页面标题都要…

linux服务器打包文件,linux系统怎么进行文件打包_网站服务器运行维护,linux,文件...

linux系统怎么打开终端_网站服务器运行维护linux系统打开终端的方法是:1、使用快捷键【ctrlaltt】打开终端,linux支持多终端,可以一次性打开多个终端;2、通过【search your computer】功能搜索terminal。打包(.tar):tar -cvf Pro.…

建立安全审计用户_高校数据安全解决方案-网站版

一、 背景介绍高校网络中的数据一般包括网站数据、教学资源、图书资源、教务管理数据、办公资源、财务管理数据等,如教职工信息、学生信息、教学信息、科研信息、资产信息、图书借阅信息、师生消费信息和上网信息等各种数据内容。学校的招生就业、财务、资产数据等等…

idm 爬取网站 跳转路径_使用IDM批量抓取音效素材下载

IDM下载器的站点抓取功能,能够抓取网站上的图片、音频、视频、PDF、压缩包等等文件。更重要的是,能够实现批量抓取操作,省时省力。今天就来看一下,如何用IDM巧妙的批量抓取音效素材。1、进入音效合辑界面,复制链接地址…

html 树形结构_做SEO如何优化网站结构提高网站排名

做SEO如何优化网站结构提高网站排名?最近刚进一家新公司,职位是SEO优化主管。接手工作后,看了看自己负责的网站,说句实话,真心不想看。整个网站的界面用户体验太差了,打开网站给我的第一感觉就是这个网站是…

Eclipse 发布到网站的附加产品的形式 Update Site

Eclipse 发布到网站的附加产品的形式 Update Site 通过Update Site Project项目将自己做的插件产品公布到公网上,给客户或其它測试人员下载和应用,这样自己的插件就以网站的形式暴露给公众了,谁都能够下载下来试用它。 1. 创建Plug-inProject…

单机网站服务器,端游【天之炼狱241】单机版一键端网单+GM工具

虚拟机:root 密码:123456数据库:root 密码:root虚拟机IP:192.168.1.123,如果不是的自己ifconfig查看重要的事情说三遍,虚拟机IP已改好。不用改。不用改。不用改。VM虚拟机里IP也不改。建立成…

网页测速 php,好用实用的站长测速工具网站大全

文章介绍:其实站长一直都需要一些测速的工具,例如:网站的速度测试、ping值测试、IP是否被X测试、备案测试等等,本文总结了这些内容,分享给大家。IPIPNET网址:https://tools.ipip.net/newping.php支持全国Pi…

linux桌面进程怎么通信,FIFO - Linux 进程通信(System V)_Linux编程_Linux公社-Linux系统门户网站...

一.一些简单理解:我们知道管道是没有标志的,所以只能是在同一个进程组中进行通信,不同的祖先产生的进程之间是不可以的!!所以此处引入FIFO机制同样也只能是单流的!不同的是FIFO是有标志的!每个F…

与虫子尾交3d动画网站_HTML5 3D环形方块翻转动画

插件简介今天给大家带来的这款方块动画是基于HTML5 Canvas的,它的特点是许多个方块围成一个环形,每个方块不停地旋转,同时你也可以拖拽鼠标来看环形方块的不同视角,如果你是在移动设备上观看在线演示,那么你也可以滑动…

Windows下搭建Wordpress博客网站

一:安装wamp Windows下的ApacheMysql/MariaDBPerl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大…

nginx服务器没有配置SSL的网站通过https访问时,会跳转访问其他https的网站

引言:测试的时候 突然遇到这个问题 ,度娘了一些解决办法,参考了博文:nginx服务器没有配置SSL的网站通过https访问时,会跳转访问其他https的网站 的解决办法 ,再此记录一下,以便查看 在项目配置文件中:加入如下配置 listen 443;if ($server_port ~ 443){rewrite ^(/.*)$ …