目前很多网站对爬虫都有防范措施,传统的爬数据方法不一定有效。我们只能曲线救国,通过模拟网页浏览方式爬取数据,虽然速度慢,既能达到目标又不会网站服务器增加压力,双赢吧。
Python环境要先下载selenium模块,在工作目录下要下载相应浏览器的驱动,我这里用firefox,下载geckodriver。
具体代码如下:
from selenium import webdriver
import tushare as ts
#批量爬取北向资金数据函数
def getNorthFundDateData(brow,url,dates): #本函数金更新持有数量,另一函数刷新个股股价
tryTimes = 3
#brow.refresh()
#time.sleep(1)
brow.get(url)
time.sleep(1)
errorDate = []
for date in dates:
try:
inputDate = brow.find_element_by_id('txtShareholdingDate')
brow.execute_script("arguments[0].value = '" + date.replace('-','/') + "';", inputDate) # 直接用js修改input的值
brow.find_element_by_id('btnSearch').click()
brow.implicitly_wait(10)
#baseData =