用Python写一个爬虫,爬取双色球开奖记录,并存储为csv文件
时间: 2024-01-24 11:19:34 浏览: 89
好的,下面是代码实现:
```python
import requests
import csv
from bs4 import BeautifulSoup
# 设置请求头,防止被网站拦截
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 请求网页
url = 'http://datachart.500.com/ssq/history/newinc/history.php?limit=100000&sort=0'
response = requests.get(url, headers=headers)
# 解析网页
soup = BeautifulSoup(response.text, 'html.parser')
trs = soup.select('table tr')
# 将数据写入csv文件
with open('shuangseqiu.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
for tr in trs[2:]:
tds = tr.select('td')
row = [tds[0].text.strip()]
for td in tds[1:7]:
row.append(td.text.strip())
row.append(tds[7].text.strip().replace(',', ' '))
row.append(tds[8].text.strip())
writer.writerow(row)
print('数据已写入csv文件!')
```
上面的代码中,我们首先使用 requests 库发送 GET 请求,获取到了双色球历史开奖记录的网页。然后使用 BeautifulSoup 库解析网页,找到开奖记录所在的表格,并循环遍历表格中的每一行,将开奖记录提取出来,并写入到 csv 文件中。
注意,我们在设置请求头时使用了一个模拟浏览器的 User-Agent,这是为了防止被网站拦截。同时,我们在写入 csv 文件时,将千位分隔符逗号去掉,避免出现格式错误。
最后,运行代码即可得到一个名为 shuangseqiu.csv 的 csv 文件,里面存储了所有的双色球历史开奖记录。
阅读全文