此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
本人博客所有文章纯属学习之用,不涉及商业利益。不合适引用,自当删除!
若被用于非法行为,与我本人无关
仅用于学习交流,若用于商业行为或违法行为,后果自负
情况说明
-
最近在学习法律
-
想了解一系列的案例
-
但是呢在对应的学习网站一个一个下载会很慢诶
-
那就结合一下最近学习的内容
-
在不吃牢饭的前提下,让电脑自己突然抽搐并且开始帮我下载案例文件,省得我一个一个点吧
-
基于selenium进行了一些自动化操作
-
主要分为Cookie的获取与用自己的账号模拟登录,然后让浏览器帮我们一个一个点下载的超链接
-
关于cookies的获取和模拟登录可以看这里
代码分析
- 库的引用
import time
import json
from selenium import webdriver
- cookies获取函数
def get_cookies():
driver = webdriver.Chrome()
url='https://wenshu.court.gov.cn/'
driver.get(url)#发送请求
#打开之后,手动登录一次
time.sleep(3)
input('完成登陆后点击enter:')
time.sleep(3)
dictcookies = driver.get_cookies() # 获取cookies
jsoncookies = json.dumps(dictcookies) # 转换成字符串保存
with open('cookie.txt', 'w') as f:
f.write(jsoncookies)
print('cookies保存成功!')
driver.close()
- 携带cookies进行访问网页
def test():
driver = webdriver.Chrome()
url = 'https://wenshu.court.gov.cn/'
driver.get(url) # 发送请求
# 打开之后,手动登录一次
time.sleep(3)
with open('cookie.txt', 'r', encoding='utf8') as f:
listCookies = json.loads(f.read())
for cookie in listCookies:
cookie_dict = {
'domain': '.wenshu.court.gov.cn',
'name': cookie.get('name'),
'value': cookie.get('value'),
"expires": '',
'path': '/',
'httpOnly': False,
'HostOnly': False,
'Secure': False
}
driver.add_cookie(cookie_dict)
driver.refresh() # 刷新网页,才能实现cookie导入
- 搜索活动
time.sleep(3)
what=input("请输入查询关键词:")#输入参数
driver.find_element_by_xpath('//*[@id="_view_1540966814000"]/div/div[1]/div[2]/input').clear() # 清空搜索框
time.sleep(0.5)
driver.find_element_by_xpath('//*[@id="_view_1540966814000"]/div/div[1]/div[2]/input').send_keys("{}".format(what)) # 输入搜索内容
time.sleep(0.5)
WHAT = driver.find_element_by_xpath('//*[@id="_view_1540966814000"]/div/div[1]/div[3]')
WHAT.click()#模拟鼠标动作点击
driver.refresh() # 刷新网页,才能实现cookie导入
- 循环所有页面,依次定位并点击对应下载的位置
time.sleep(1)
#driver.refresh()
for i in range(1):
for j in range(3,8):
WHAT =driver.find_element_by_xpath('//*[@id="_view_1545184311000"]/div[{}]/div[6]/div/a[2]'.format(j))
WHAT.click()
driver.refresh() # 刷新网页,才能实现cookie导入
time.sleep(2)
input("")
driver.refresh() # 刷新网页,才能实现cookie导入
代码展示
import time
import json
from selenium import webdriver
def get_cookies():
driver = webdriver.Chrome()
url='https://wenshu.court.gov.cn/'
driver.get(url)#发送请求
#打开之后,手动登录一次
time.sleep(3)
input('完成登陆后点击enter:')
time.sleep(3)
dictcookies = driver.get_cookies() # 获取cookies
jsoncookies = json.dumps(dictcookies) # 转换成字符串保存
with open('cookie.txt', 'w') as f:
f.write(jsoncookies)
print('cookies保存成功!')
driver.close()
def test():
driver = webdriver.Chrome()
url = 'https://wenshu.court.gov.cn/'
driver.get(url) # 发送请求
# 打开之后,手动登录一次
time.sleep(3)
with open('cookie.txt', 'r', encoding='utf8') as f:
listCookies = json.loads(f.read())
for cookie in listCookies:
cookie_dict = {
'domain': '.wenshu.court.gov.cn',
'name': cookie.get('name'),
'value': cookie.get('value'),
"expires": '',
'path': '/',
'httpOnly': False,
'HostOnly': False,
'Secure': False
}
driver.add_cookie(cookie_dict)
driver.refresh() # 刷新网页,才能实现cookie导入
#print(cookie_dict)
time.sleep(3)
what=input("请输入查询关键词:")
driver.find_element_by_xpath('//*[@id="_view_1540966814000"]/div/div[1]/div[2]/input').clear() # 清空搜索框
time.sleep(0.5)
driver.find_element_by_xpath('//*[@id="_view_1540966814000"]/div/div[1]/div[2]/input').send_keys("{}".format(what)) # 输入搜索内容
time.sleep(0.5)
WHAT = driver.find_element_by_xpath('//*[@id="_view_1540966814000"]/div/div[1]/div[3]')
WHAT.click()
driver.refresh() # 刷新网页,才能实现cookie导入
time.sleep(1)
#driver.refresh()
for i in range(1):
for j in range(3,8):
WHAT =driver.find_element_by_xpath('//*[@id="_view_1545184311000"]/div[{}]/div[6]/div/a[2]'.format(j))
WHAT.click()
driver.refresh() # 刷新网页,才能实现cookie导入
time.sleep(2)
input("")
driver.refresh() # 刷新网页,才能实现cookie导入
if __name__ == "__main__":
#get_cookies()
test()
运行结果
总结
- 多使用time.sleep()
- 然后客观地说,并不属于爬虫,是基于Selenium自动化操作
- 手动狗头