原来的代码地址
https://blog.csdn.net/lmhopen/article/details/89873575
一恍两年过去了,真是时光飞逝,这两年发生了太多的事情,我也两年没玩编程了,最近比较闲,又看了一下以前编的抓排列3历史数据的代码,发现一处小麻烦,抓来的彩票中奖号之间竟然有空格键,这样进行数据分析的时候就麻烦,所以加了一句.replace(" ", “”)代码,去掉了空格键
# -*- coding: utf-8 -*-
"""
Created on Sat May 4 22:00:31 2019
@author: Administrator
"""
import requests #爬虫库
import xlwt #写excel表库
import time #时间获取转换
from bs4 import BeautifulSoup #爬虫库
# 获取网页内容
def get_html(url):
#这是一个UA伪装,告诉网站你浏览器和操作系统系统
headers = {
'User-Agent':
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
response = requests.get(url, headers=headers) #用爬虫对象获取网页内容
if response.status_code == 200: #对象状态码等于200说明获取网页内容成功
print('读取网页成功!')
return response.text #返回获取的网页内容
else:
print('读网页失败,无数据!')
return None
# 解析网页内容
def parse_html(html):
soup = BeautifulSoup(html, 'lxml') #创建网页解析器对象
i = 0
#查找网页里的tr标签,从第4个tr读到倒数第2个tr,因为通过对网页分析,前三个和最后一个tr没用
for item in soup.select(
'tr'
)[3:-1]: #把查到的tr组成一个列表,item是列表指针,for每循环一次,item就选下一个tr,读完列表本循环结束,函数就结束,
try: #不加try和except有的值是 ,是网页里的空白键,会出错,加上调试命令忽略错误,后边统一处理
yield {
#yield作用是得到数据立即返回给调用函数,但不退出本循环本函数
'issue': item.select('td')