鱼C论坛

 找回密码
 立即注册
查看: 2625|回复: 0

[作品展示] selenium+chrome,爬双色球彩票网站~~~

[复制链接]
发表于 2017-3-16 17:44:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
http://bbs.fishc.com/forum.php?mod=viewthread&tid=66779&extra=page%3D1%26filter%3Dtypeid%26typeid%3D392
这个帖子里面有人问这个彩票网站怎么爬。
明明彩票网站里面有导出数据,为什么还要爬呢?真真让人想不通。
不过下雨天打孩子,闲着也是闲着,于是就出现了以下代码!
本来以为就是网页上面的几个数字应该很简单,结果发现页面跳转满眼的href="javascript:getPage(2),只好祭出最终大杀器selenium了。
忙活了好一会儿才弄出来。不敢多奢求,那位大神因为这数据能中了500万,1000万的,给小弟我发个红包也好。

由于这个网站的自定义期数我实在搞不懂什么意思,输入2015001到2017029,跳出的数据只要跳转后面页数,所有页面就重置了。
所以,我只选择了最近100期,但实际上是网站给出了120期的数据。
最后的结果保存在allqs这个列表里面。

代码如下:
  1. from bs4 import BeautifulSoup
  2. from selenium import webdriver


  3. def getdata():
  4.     elem = driver.find_element_by_xpath('/html/body/div[6]')
  5.     html = elem.get_attribute('innerHTML')
  6.     soup = BeautifulSoup(html, "lxml")
  7.     s = soup.tbody.find_all(onmouseover="this.style.background='#fff7d8'")

  8.     for each in s:
  9.         i = each.text.split('/n')[0].split('\n')
  10.         d = {}
  11.         d['期数'] = i[1]
  12.         d['日期'] = i[2]
  13.         d['红球'] = i[3:9]
  14.         d['蓝球'] = i[9]
  15.         d['总投注额(元)'] = i[10]
  16.         d['一等奖注数'] = i[11]
  17.         d['一等奖奖金'] = i[12]
  18.         d['二等奖注数'] = i[13]
  19.         d['二等奖奖金'] = i[14]
  20.         d['奖池滚存(元)'] = i[15]
  21.         allqs.append(d)


  22. path1 = r'C:\Users\letian\AppData\Local\Programs\Python\Python36\Lib\site-packages\selenium\webdriver\chromedriver\chromedriver.exe'  # 这里需要改成自己的,如果环境变量可以直接调用则不需要
  23. driver = webdriver.Chrome(path1)
  24. driver.get('http://zst.sina.aicai.com/ssq/openInfo/')
  25. allqs = []
  26. qishu = driver.find_element_by_xpath(r'//*[@id="select_id"]/option[3]')
  27. qishu.click()

  28. while 1:
  29.     getdata()
  30.     pageelem = driver.find_element_by_xpath('/html/body/div[6]/form/div[3]/ul/li[6]')
  31.     pagehtml = pageelem.get_attribute('innerHTML')
  32.     if 'disabled' not in pagehtml:
  33.         page = driver.find_element_by_xpath('/html/body/div[6]/form/div[3]/ul/li[6]')
  34.         page.click()
  35.     else:
  36.         break

  37. x = 1
  38. for each in allqs:
  39.     print(x, each)
  40.     x += 1
复制代码
QQ截图20170316172906.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-28 21:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表