C'est la vie

生きてる事が 時には辛くて

0%

尝试用selenium爬取数据

这个月琐事比较多,工作有点忙,没太有新的进展,只是月初的时候尝试用selenium爬取了一些需要的数据。

背景

工作里需要用的一些基础资料可以在一些网站上找到,只是数据量比较大,网站上公布的是每天的资料,我需要的是每个月的,所以需要把每天的资料爬取下来然后再处理。最开始是打算用requests库构造请求然后处理返回的数据,结果发现需要的数据在返回时放在了一个_VIEWSTATE里,然后可能是经过加密处理了,反正不是原始的数据,所以这个方法暂时就用不了了。然后就想通过selenium直接模拟一个浏览器出来,然后把需要的数据提取出来。

大致流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome(executable_path = r'./chromedriver.exe') //这里是把驱动文件放在当前文件夹里了

url="https://www.baidu.com" #网址好像要写全,不能省略https://
driver.get(url)

text_box=driver.find_element(by=By.ID,value='kw') #定位到输入框
text_box.send_keys("test") #向文本框里输入文字

date_submit_button=driver.find_element(by=By.ID,value='su') #定位到搜索按钮
date_submit_button.click() #点击搜索按钮

driver.close()

参考资料

说明文档

python中文文档

最后

为了防止给服务器太大压力,当时写好程序之后设置了一个查询间隔,大概是3秒查一次,这样最终跑了一晚上,获取了差不多20年的资料。要是手动查的话估计好很久吧。