双色球

  • 代码部分
    • 单线程
    • 多线程

网址:
http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html

应该还挺好抓的直接pandas
不啰嗦了,相信原理大部分应该都懂都有了
里面也有必要的注释
直接贴代码了

代码部分

单线程

import pandas as pd
import csv
import timedef get_one_page(page):url = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list_%s.html' % (str(page))tb = pd.read_html(url, skiprows=[0, 1])[0]  # 跳过前两行return tb.drop([len(tb)-1])  # 去掉最后一行with open(r'xxx', 'w', encoding='utf-8-sig', newline='') as f:csv.writer(f).writerow(['开奖日期', '期号', '中奖号码', '销售额(元)', '中奖注数一等奖', '中奖注数二等奖', '详细'])start_time = time.time()for i in range(1,127):  # 目前126页数据,取20页get_one_page(i).to_csv(r'xxx', mode='a', encoding='utf_8_sig', header=0, index=0)print('第'+str(i)+'页抓取完成')end_time = time.time()
print('耗时:', end_time-start_time, '秒')

多线程

import random
import threading
import pandas as pd
from queue import Queue
import time
import csvurl = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html' class Thread_crawl(threading.Thread):# 初始化def __init__(self, name, page_queue):threading.Thread.__init__(self)# 拿到任务队列self.page_queue = page_queueself.name = namedef run(self):# # 任务开始事件# start_time = time.time()while True:if self.page_queue.empty():# # 任务结束时间# end_time = time.time()# # 需要时间# print(end_time - start_time)breakelse:print(self.name, '将要从队列中取任务')#这里就是利用了队列的特性,抽取之后就行了,get抽了之后对应的页码就消失了,不然就会重复抽取了page = self.page_queue.get()print(self.name, '取出的任务是:', page)url = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list_%s.html' % (str(page))self.get_content(url=url)print(self.name, '完成任务:', page)def get_content(self, url):headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6824.400 QQBrowser/10.3.3127.400'}tb = pd.read_html(url, skiprows=[0, 1])[0]  # 跳过前两行data = tb.drop([len(tb)-1])data.to_csv(r'xxx', mode='a', encoding='utf_8_sig', header=0, index=0)with open(r'xxx', 'w', encoding='utf-8-sig', newline='') as f:csv.writer(f).writerow(['开奖日期', '期号', '中奖号码', '销售额(元)', '中奖注数一等奖', '中奖注数二等奖', '详细'])if __name__ == '__main__':# 任务开始事件start_time = time.time()# 创建队列任务page_queue = Queue()for page in range(1, 127):page_queue.put(page)# 2 生成线程#这里过于丧心病狂写了9个线程craw1_name = ['c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9']craw1_tread = []for name in craw1_name:crawl = Thread_crawl(name, page_queue)#start即调用run方法crawl.start()craw1_tread.append(crawl)##join 阻塞线程,让子线程都完成任务后,主线程再往下进行for thread in craw1_tread:thread.join()# 任务结束时间end_time = time.time()# 需要时间print(end_time - start_time)

代码应该直接就可以用,改改文件路径就行了

写入效果如下图所示

开奖日期,期号,中奖号码,销售额(元),中奖注数一等奖,中奖注数二等奖,详细
2019-05-23,2019059,04  05  07  09  16  18  06,345567246,2  (鄂 桂),125,
2019-05-21,2019058,07  08  12  21  23  27  12,339299672,20  (冀 黑 沪 苏..),127,
2019-05-19,2019057,04  05  06  08  13  18  16,372560948,7  (黑 沪 湘 深圳..),127,
2019-05-16,2019056,13  14  17  19  21  29  01,351267630,1  (赣),78,
2019-05-14,2019055,01  06  11  15  19  31  10,350070872,2  (豫 粤),61,
2019-05-12,2019054,07  10  11  15  24  26  11,376075414,8  (京 吉 鲁 鄂..),132,
2019-05-09,2019053,04  16  22  25  29  31  08,345533966,12  (蒙 沪 苏 鄂..),109,
2019-05-07,2019052,03  06  09  13  16  19  16,342251970,153  (京 津 冀 晋..),2295,
2019-05-05,2019051,08  09  10  13  15  28  09,371316762,13  (晋 蒙 吉 黑..),120,
2019-05-02,2019050,04  06  10  11  21  23  02,311858860,13  (辽 吉 沪 皖..),100,
2019-04-30,2019049,03  10  13  22  23  28  15,333775314,9  (京 津 黑 浙..),205,
2019-04-28,2019048,03  07  10  12  18  29  10,379210874,8  (冀 苏 湘 粤),153,
2019-04-25,2019047,03  11  18  25  30  33  14,349665886,1  (粤),388,
2019-04-23,2019046,02  12  16  22  25  32  06,349236650,17  (津 黑 沪 浙..),132,
2019-04-21,2019045,01  06  17  19  27  31  14,380577960,7  (辽 苏 粤 深圳..),83,
2019-04-18,2019044,06  14  16  17  23  29  07,350579948,12  (津 浙 皖 湘..),188,
2019-04-16,2019043,01  06  12  13  24  32  13,345296562,2  (鲁 鄂),99,
2019-04-14,2019042,15  17  19  22  25  26  04,376134240,4  (冀 晋 闽 鲁),132,
2019-08-25,2019099,07  14  22  23  27  30  08,355328056,26  (吉 黑 皖 赣..),185,
2019-08-22,2019098,03  11  12  14  17  26  09,334187522,4  (辽 黑 浙 湘),136,
2019-08-20,2019097,03  05  18  24  25  31  09,328319954,5  (辽 粤 陕 新),98,
2019-08-18,2019096,05  07  12  18  27  32  11,355103324,48  (冀 晋 辽 赣..),310,
2019-08-15,2019095,02  05  14  19  21  28  01,327102912,3  (辽 粤),95,
2019-08-13,2019094,05  10  12  18  19  27  06,318739184,8  (苏 浙 赣 粤..),301,
2019-08-11,2019093,05  07  08  09  20  22  02,343851622,27  (京 冀 蒙 辽..),629,
2019-08-08,2019092,09  17  27  28  32  33  08,325113036,6  (京 苏 浙 湘..),67,
2019-08-06,2019091,07  10  21  24  29  32  11,321773688,2  (深圳 渝),94,
2019-08-04,2019090,02  03  06  08  14  22  04,355808718,2  (辽 粤),93,
2019-08-01,2019089,02  04  14  16  20  22  11,321183320,7  (辽 皖 鄂 湘..),104,
2019-07-30,2019088,13  14  15  21  23  29  13,320442344,18  (黑 苏 浙 鲁..),77,
2019-07-28,2019087,04  05  07  09  21  30  04,348495228,5  (沪 皖),99,

也希望大家成功,我是夏友,谢谢大家!

【爬虫专栏17】多线程爬双色球相关推荐

  1. python爬虫实战之多线程爬取前程无忧简历

    python爬虫实战之多线程爬取前程无忧简历 import requests import re import threading import time from queue import Queu ...

  2. python爬虫第二弹-多线程爬取网站歌曲

    python爬虫第二弹-多线程爬取网站歌曲 一.简介 二.使用的环境 三.网页解析 1.获取网页的最大页数 2.获取每一页的url形式 3.获取每首歌曲的相关信息 4.获取下载的链接 四.代码实现 一 ...

  3. Python爬虫实战 | 利用多线程爬取 LOL 高清壁纸

    来源:公众号[杰哥的IT之旅] 作者:阿拉斯加 ID:Jake_Internet 如需获取本文完整代码及 LOL 壁纸,请为本文右下角点赞并添加杰哥微信:Hc220088 获取. 一.背景介绍 随着移 ...

  4. python爬虫实例之——多线程爬取小说

    之前写过一篇爬取小说的博客,但是单线程爬取速度太慢了,之前爬取一部小说花了700多秒,1秒两章的速度有点让人难以接受. 所以弄了个多线程的爬虫. 这次的思路和之前的不一样,之前是一章一章的爬,每爬一章 ...

  5. Python爬虫进阶之多线程爬取数据并保存到数据库

    今天刚看完崔大佬的<python3网络爬虫开发实战>,顿时觉得自己有行了,准备用appium登录QQ爬取列表中好友信息,接踵而来的是一步一步的坑,前期配置无数出错,安装之后连接也是好多错误 ...

  6. 网络爬虫:使用多线程爬取网页链接

    前言: 经过前面两篇文章,你想大家应该已经知道网络爬虫是怎么一回事了.这篇文章会在之前做过的事情上做一些改进,以及说明之前的做法的不足之处. 思路分析: 1.逻辑结构图 上图中展示的就是我们网络爬虫中 ...

  7. Java 爬虫简单实现多线程爬取视频

    一 引言 什么是网络爬虫? 个人简单理解: 根据特定规则从指定web开放内容中抓取希望获取的数据,如视频,图片,小说等 官方权威解释(wiki): 网络爬虫(英语:),也叫网络蜘蛛(),是一种用来自动 ...

  8. python爬虫实例之小说爬取器

    今天和大家分享一个爬取盗版小说的实例. 如今的网络小说可谓是百家齐放各领风骚,玄幻科幻穿越修仙都市- 各种套路看得我是心潮澎湃,笔者曾经也蛮喜欢看小说的,以前经常是拿着一台诺基亚看到深夜,第二天带着黑 ...

  9. python爬虫天天基金_不使用Python爬虫框架,多线程+代理池爬取天天基金网、股票数据...

    提到爬虫,大部分人都会想到使用Scrapy工具,但是仅仅停留在会使用的阶段.为了增加对爬虫机制的理解,我们可以手动实现多线程的爬虫过程,同时,引入IP代理池进行基本的反爬操作. 本次使用天天基金网进行 ...

  10. python多线程爬取多个网址_【Python爬虫】多线程爬取斗图网站(皮皮虾,我们上车)...

    原标题:[Python爬虫]多线程爬取斗图网站(皮皮虾,我们上车) 斗图我不怕 没有斗图库的程序猿是无助,每次在群里斗图都以惨败而告终,为了能让自己在斗图界立于不败之地,特意去网上爬取了斗图包.在这里 ...

最新文章

  1. ES6语法~解构赋值、箭头函数、class类继承及属性方法、map、set、symbol、rest、new.target、 Object.entries......
  2. “叽里呱啦”说英语,这家公司要用AI增值语言输出能力
  3. sqlserver锁机制详解(sqlserver查看锁)
  4. Apache2.2.8、php5.2.6、mysql5、phpMyAdmin2.11.6在Windows Vista下的安装和配置
  5. FreeBSD 创始人-Jordan Hubbard
  6. python动态规划详解_python----动态规划
  7. 服务器消息机制实现--记录
  8. apache poi excel显示 base64 图片_java操作Excel一:POI
  9. STM32F107 资料
  10. 英寸和厘米的换算python_OJ实例:厘米换算英尺英寸
  11. 领导给你安排任务,这三种话,越早说越好
  12. 证件照排版软件_傻瓜式证件照片排版以及尺寸的调整
  13. HTML 实现仿 Windows 桌面主题特效
  14. sybase日志空间不足,增加日志空间步骤(有图有真相)
  15. 树莓派强制更改root密码
  16. 【codeforces】【比赛题解】#960 CF Round #474 (Div. 1 + Div. 2, combined)
  17. 趋势一次一单EA,不加仓不网格,每单带止损止盈,风险可控
  18. 02 创建一个简单的Python Web程序应用
  19. 【每周研报复现】基于阻力支撑相对强度(RSRS)的市场择时
  20. 矩阵乘法为什么快怎么更快

热门文章

  1. php的laravel框架下载,Laravel(PHP开发框架)官方下载 5.4稳定版_Win10镜像官网
  2. 西刺代理python_手把手教你使用Python爬取西刺代理数据(下篇)
  3. myeclipse安装插件phpeclipse后进行PHP代码编写
  4. msf生成php木马,11.7 Weevely3生成网页木马、Backcookie后门生成工具、使用msf生成木马、一句话变形技巧和使用...
  5. C/C++ _beginthreadex 多线程操作 - 线程同步
  6. 计算机端最好用的词典——GoldenDict
  7. 脑电时频分析II:时频分析
  8. vb3计算机,2014年计算机二级考试VB试题 3
  9. 【入门必看-算法基础知识讲解】小白都也能看得懂
  10. 基于javaweb的客户信息管理系统搭建