网站地址: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历史数据的更多相关文章

  1. 第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解

    第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解 封装模块 #!/usr/bin/env python # -*- coding: utf- ...

  2. python爬虫实战---爬取大众点评评论

    python爬虫实战—爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经 ...

  3. 九 web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解

    封装模块 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib from urllib import request import j ...

  4. Scrapy爬虫笔记 - 爬取知乎

    cookie是一种本地存储机制,cookie是存储在本地的 session其实就是将用户信息用户名.密码等)加密成一串字符串,返回给浏览器,以后浏览器每次请求都带着这个sessionId 状态码一般是 ...

  5. 【网络爬虫】【python】网络爬虫(五):scrapy爬虫初探——爬取网页及选择器

    在上一篇文章的末尾,我们创建了一个scrapy框架的爬虫项目test,现在来运行下一个简单的爬虫,看看scrapy爬取的过程是怎样的. 一.爬虫类编写(spider.py) from scrapy.s ...

  6. scrapy入门实战-爬取代理网站

    入门scrapy. 学习了有这几点 1.如何使用scrapy框架对网站进行爬虫: 2.如何对网页源代码使用xpath进行解析: 3.如何书写spider爬虫文件,对源代码进行解析: 4.学会使用scr ...

  7. 手把手教大家如何用scrapy爬虫框架爬取王者荣耀官网英雄资料

    之前被两个关系很好的朋友拉入了王者荣耀的大坑,奈何技术太差,就想着做一个英雄的随查手册,这样就可以边打边查了.菜归菜,至少得说明咱打王者的态度是没得说的,对吧?大神不喜勿喷!!!感谢!!废话不多说,开 ...

  8. scrapy爬虫案例--爬取阳关热线问政平台

    阳光热线问政平台:http://wz.sun0769.com/political/index/politicsNewest?id=1&page=1 爬取最新问政帖子的编号.投诉标题.投诉内容以 ...

  9. Scrapy爬虫Demo 爬取资讯分类

    爬取新浪网导航页所有下所有大类.小类.小类里的子链接,以及子链接页面的新闻内容. 效果演示图: items.py import scrapy import sys reload(sys) sys.se ...

随机推荐

  1. 项目搭建(三):自定义DLL

    说明:程序中有些自定义的控件类型在TestStack.White框架中没有涉及,需要引入自定义的DLL,通过鼠标点击事件处理 使用:将自定义的ClassLibrary2.dll拷贝到项目/bin/de ...

  2. 记录MNIST实现与理解

    之前半个月的时间几乎都在看理论书籍,最近两天开始撸代码,一个跟Hello World同级别的教程例子就出来了,那就是MNIST.实现代码应该很多地方都有: #!/usr/bin/env python ...

  3. 通过TCP/IP连接Mysql数据库

    问题:mysql只能用localhost或127.0.0.1连接 解决:mysql安装完后,默认是root用户,root用户只能在服务器登录,需要分配新用户. 1.以root用户登陆mysql数据库. ...

  4. 基于Diff机制的多个状态合并

    1. 场景 假设一个系统System在某一时刻的状态可以用State A来表示[State里面包含着一些元素的集合]: 1: State A = [element_0, element_1,……,el ...

  5. 【一起学源码-微服务】Nexflix Eureka 源码三:EurekaServer启动之EurekaServer上下文EurekaClient创建

    前言 上篇文章已经介绍了 Eureka Server 环境和上下文初始化的一些代码,其中重点讲解了environment初始化使用的单例模式,以及EurekaServerConfigure基于接口对外 ...

  6. C++学习书籍推荐

    列出几本侯捷老师推荐的书1. C++程序员必备的书a) <C++ Programming Language> Bjarne Stroustrupb) <C++ Primer> ...

  7. MSF——Payload模块(二)

    MSF系列: MSF——基本使用和Exploit模块(一) MSF——Payload模块(二) MSF——Meterpreter(三) MSF——信息收集(四) 一.exploit和payload e ...

  8. python新手上车001

    python新手上车001 一般建议: 1.下载:从https://www.python.org/downloads/windows/  python官网进行下载建议就从3.7.2开始吧(我从这个版本 ...

  9. python面试题之用列表解析式选出1-100中的奇数

    [i for i in range(100) if i % 2 != 0](其实这里有很多种做法,比如最简单的用切片就可以了 list(range(100))[1::2]都不需要列表解析式本文首发于p ...

  10. FMDB使用的一点心得:数据库创建、制表、查询等以及image转换成二进制nsdata保存到数据库中

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u012951123/article/details/36871955 <span style= ...