|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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这个列表里面。
代码如下:
- from bs4 import BeautifulSoup
- from selenium import webdriver
- def getdata():
- elem = driver.find_element_by_xpath('/html/body/div[6]')
- html = elem.get_attribute('innerHTML')
- soup = BeautifulSoup(html, "lxml")
- s = soup.tbody.find_all(onmouseover="this.style.background='#fff7d8'")
- for each in s:
- i = each.text.split('/n')[0].split('\n')
- d = {}
- d['期数'] = i[1]
- d['日期'] = i[2]
- d['红球'] = i[3:9]
- d['蓝球'] = i[9]
- d['总投注额(元)'] = i[10]
- d['一等奖注数'] = i[11]
- d['一等奖奖金'] = i[12]
- d['二等奖注数'] = i[13]
- d['二等奖奖金'] = i[14]
- d['奖池滚存(元)'] = i[15]
- allqs.append(d)
- path1 = r'C:\Users\letian\AppData\Local\Programs\Python\Python36\Lib\site-packages\selenium\webdriver\chromedriver\chromedriver.exe' # 这里需要改成自己的,如果环境变量可以直接调用则不需要
- driver = webdriver.Chrome(path1)
- driver.get('http://zst.sina.aicai.com/ssq/openInfo/')
- allqs = []
- qishu = driver.find_element_by_xpath(r'//*[@id="select_id"]/option[3]')
- qishu.click()
- while 1:
- getdata()
- pageelem = driver.find_element_by_xpath('/html/body/div[6]/form/div[3]/ul/li[6]')
- pagehtml = pageelem.get_attribute('innerHTML')
- if 'disabled' not in pagehtml:
- page = driver.find_element_by_xpath('/html/body/div[6]/form/div[3]/ul/li[6]')
- page.click()
- else:
- break
- x = 1
- for each in allqs:
- print(x, each)
- x += 1
复制代码 |
-
|