selenium爬取国家卫健委疫情数据
看老师们都说卫健委网页反爬机制很高,亲测使用selenium+火狐驱动有效
此时我的geckodriver放在爬虫文件中,跟.py文件同级
from selenium.webdriver import Firefox
from selenium.webdriver import FirefoxOptions
import time,re
option = FirefoxOptions()
option.add_argument("--headless") # 隐藏浏览器
# option.add_argument('--no-sandbox')
browser = Firefox(executable_path='geckodriver',options=option)
url = "http://www.nhc.gov.cn/xcs/yqtb/list_gzbd.shtml"
browser.get(url)
time.sleep(3) #火狐需要人为等待,设置等待时间为5s
# print(browser.page_source) #查看源码
'''
#全部连接
alls = browser.find_elements_by_css_selector("li a")
for i in alls:
print(i.get_attribute('href'),i.text) #i.get_attribute('href')是首页所有连接(不打算写其他页了)
'''
new_url = browser.find_element_by_css_selector("li a").get_attribute('href') #以一个为例
browser.get(new_url)
time.sleep(3)
news = browser.page_source
# print(news) #每页全部信息
ch_all_dict = {
}
all_dict = {
}
gat_dict = {
} #港澳台
#group(0)代表匹配的整句话
'''我国31个省(自治区、直辖市)和新疆生产建设兵团(不包括港澳台)'''
all_dict['pub_time'] = re.search('截至(.*?)24时',news).group(1) #group(1)代表括号里的内容
#累计确诊(tx已有)
all_dict['confirm_all'] = re.search('据31个省(自治区、直辖市)和新疆生产建设兵团.*?累计报告确诊病例(.*?)例,',news).group(1)
#现有确诊
all_dict['confirm_now'</