Scrapy爬虫实战-爬取体彩排列5历史数据
网站地址:http://www.17500.cn/p5/all.php
1、新建爬虫项目
scrapy startproject pfive
2、在spiders目录下新建爬虫
scrapy genspider pfive_spider www.17500.cn
3、在爬虫文件中修改入口url
start_urls = ['http://www.17500.cn/p5/all.php']
4、添加爬取条目
class PfiveItem(scrapy.Item):
#开奖期号
awardID = scrapy.Field()
#开奖日期
awardDate = scrapy.Field()
#开奖号码
awardNum = scrapy.Field()
5、编写爬虫,通过xpath解析网站
class PfiveSpiderSpider(scrapy.Spider):
name = 'pfive_spider'
allowed_domains = ['www.17500.cn']
start_urls = ['http://www.17500.cn/p5/all.php'] def parse(self, response):
list = response.xpath("//table/tbody/tr/td/table/tbody/tr[3]/td[@class='normal']/table/tbody/tr[@bgcolor='#ffffff']")
for l in list:
pfiveItem = PfiveItem()
pfiveItem['awardID'] = l.xpath('./td[1]/text()').extract_first()
pfiveItem['awardDate'] = l.xpath('./td[2]/text()').extract_first()
pfiveItem['awardNum'] = l.xpath('./td[3]/text()').extract_first()
yield pfiveItem
6、在配置文件中忽略robots.txt文件(仅学习用)
# Obey robots.txt rules
ROBOTSTXT_OBEY = False
7、在配置文件中打开User_Agent
USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
8、编写启动文件main.py
from scrapy import cmdline
cmdline.execute('scrapy crawl pfive_spider'.split())
按理说这样就可以了,但是却抓不到东西!!!
通过查看response.text,发现表格数据是异步加载的,百度如何处理这种网页
https://blog.csdn.net/dangsh_/article/details/78633566
这个博主通过使用selenium 自动化测试包解决了这个问题。
9、首先编写下载中间件,并在配置中添加
class JavaScriptMiddleware(object): def process_request(self, request, spider):
if spider.name == "pfive_spider":
driver = webdriver.Chrome("G:\\Crawler\chromedriver.exe") #指定使用的浏览器
driver.get(request.url)
time.sleep(1)
js = "var q=document.documentElement.scrollTop=10000" #模拟浏览页面
driver.execute_script(js) #可执行js,模仿用户操作。此处为将页面拉至最底端。
time.sleep(3)
body = driver.page_source
print ("访问"+request.url)
return HtmlResponse(driver.current_url, body=body, encoding='utf-8', request=request)
else:
return None
注意闭坑:chromedriver.exe的版本要和本机chrom浏览器的版本一致。
http://chromedriver.storage.googleapis.com/index.html
OK,到此为止,大功告成
不对,这还只是第一页的数据。。。等下补更
Scrapy爬虫实战-爬取体彩排列5历史数据的更多相关文章
- 第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解
第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解 封装模块 #!/usr/bin/env python # -*- coding: utf- ...
- python爬虫实战---爬取大众点评评论
python爬虫实战—爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经 ...
- 九 web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解
封装模块 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib from urllib import request import j ...
- Scrapy爬虫笔记 - 爬取知乎
cookie是一种本地存储机制,cookie是存储在本地的 session其实就是将用户信息用户名.密码等)加密成一串字符串,返回给浏览器,以后浏览器每次请求都带着这个sessionId 状态码一般是 ...
- 【网络爬虫】【python】网络爬虫(五):scrapy爬虫初探——爬取网页及选择器
在上一篇文章的末尾,我们创建了一个scrapy框架的爬虫项目test,现在来运行下一个简单的爬虫,看看scrapy爬取的过程是怎样的. 一.爬虫类编写(spider.py) from scrapy.s ...
- scrapy入门实战-爬取代理网站
入门scrapy. 学习了有这几点 1.如何使用scrapy框架对网站进行爬虫: 2.如何对网页源代码使用xpath进行解析: 3.如何书写spider爬虫文件,对源代码进行解析: 4.学会使用scr ...
- 手把手教大家如何用scrapy爬虫框架爬取王者荣耀官网英雄资料
之前被两个关系很好的朋友拉入了王者荣耀的大坑,奈何技术太差,就想着做一个英雄的随查手册,这样就可以边打边查了.菜归菜,至少得说明咱打王者的态度是没得说的,对吧?大神不喜勿喷!!!感谢!!废话不多说,开 ...
- scrapy爬虫案例--爬取阳关热线问政平台
阳光热线问政平台:http://wz.sun0769.com/political/index/politicsNewest?id=1&page=1 爬取最新问政帖子的编号.投诉标题.投诉内容以 ...
- Scrapy爬虫Demo 爬取资讯分类
爬取新浪网导航页所有下所有大类.小类.小类里的子链接,以及子链接页面的新闻内容. 效果演示图: items.py import scrapy import sys reload(sys) sys.se ...
随机推荐
- Java学习之线程间通信(双线程)
线程间通讯:多个线程在处理同一资源,但是任务不同 练习一:双线程出现线程安全问题,需要使用同步,思考同步代码添加位置需求:银行账户存钱,显示谁在账户存钱了,存了多少钱分析:操作同一银行账户两个不同的操 ...
- Process Monitor监控进程操作注册表如何实现?
http://zhidao.baidu.com/link?url=Kqav4qkQSprC5FnpHPOGJvhqvY9fJ9-Vdx9g_SWh4w5VOusdRJo4Vl7qIdrG4LwRJvr ...
- 解决myeclipse validation验证javascript导致速度变慢的现象
参考:https://jingyan.baidu.com/article/ca41422fe094251eae99ede7.html
- BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
原生的 Bootstrap 的 carousel.js 插件并没有支持手势,有下面3种解决方案 : 1. jQuery Mobile (http://jquerymobile.com/download ...
- python类与对象
1. class命名规范:首字母大写,驼峰命名法 2. class 里面函数括号里面带(self)说明这是一个实例,调用实例方法需要用实例调用 class Teacher: def test_1 ...
- Autofac基本使用
原文:Autofac基本使用 AutoFac是.net平台下的IOC容器产品,它可以管理类之间的复杂的依赖关系.在使用方面主要是register和resolve两类操作. 这篇文章用单元测试的形式列举 ...
- MVC的布局页,视图布局页和分布页的使用
一,结构如下图 二,布局页和视图布局页 1>使用方法一 _ViewStart.cshtml @{ Layout = "~/Views/Shared/_Layout.cshtml&quo ...
- Pandas_key_point
10分钟快速入门pandas: http://pandas.pydata.org/pandas-docs/stable/10min.html ----------------------------- ...
- 四、Redis通配符介绍、命令缩写介绍和后面内容介绍讲解。
1.通配符介绍 ? 匹配一个字符 * 匹配任意个(包括 0 个)字符 [] 匹配括号间任一字符,可以使用 "-" 符号表示一个范围,如 a[b-d]匹配 "ab" ...
- 四、yml文件的写法
1.创建一个新的工程 注意:只有properties文件,没有包含yaml文件 2.创建一个yml文件 全局配置配置文件,文件名是固定的application 作用:修改SpringBoot自动配置的 ...