1.安装
pip3 install DrissionPage
2.引入主程序
from DrissionPage import ChromiumPage
3.设置调用浏览器地址 只需要执行一次生成配置文件即可
from DrissionPage.easy_set import set_paths
#windows的直接找chrome.exe文件
set_paths(browser_path=r'C:/Users/AAA/AppData/Local/Google/Chrome/Application/chrome.exe')
#一般linux安装的google浏览器默认都在这个目录
set_paths(browser_path=r'/opt/google/chrome/google-chrome')
4.设置不显示浏览器调用访问,只需要在linux环境上打开注释即可
from DrissionPage.easy_set import set_headless, set_paths
set_headless(True)
5.ini配置说明
/usr/local/python3/lib/python3.7/site-packages/DrissionPage/configs
- 1表示chrome对应版本的 chromedriver地址
- 2表示debug模式启动的端口,注意如果部署了selenium 端口不要冲突了 默认是9222 修改成9211或者其他都可以
- 3表示chrome对应的安装地址,一般不需要动
[paths]
chromedriver_path=/mkl/weipu/chromedriver-linux64/chromedriver
download_path =
[chrome_options]
debugger_address = 127.0.0.1:9211
binary_location = /opt/google/chrome/google-chrome
arguments = ['--no-first-run', '--no-sandbox', '--disable-infobars', '--disable-popup-blocking', '--headless=new']
extensions = []
experimental_options = {'prefs': {'profile.default_content_settings.popups': 0, 'profile.default_content_setting_values': {'notifications': 2}}}
page_load_strategy = normal
user = Default
auto_port = False
system_user_path = False
[session_options]
headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'connection': 'keep-alive', 'accept-charset': 'GB2312,utf-8;q=0.7,*;q=0.7'}
[timeouts]
implicit = 10
page_load = 30
script = 30
[proxies]
http =
https =
6.代码示例说明
import time
import re
import math
# import pymysql
from DrissionPage import ChromiumPage
from DrissionPage.easy_set import set_paths
from DrissionPage import ChromiumOptions
from DrissionPage.easy_set import set_headless, set_paths
set_headless(True)
co = ChromiumOptions()
co.set_argument('--incognito')
co.set_argument('--no-sandbox');
#set_paths(browser_path=r'/opt/google/chrome/google-chrome')
#set_paths(browser_path=r'C:/Users/AAA/AppData/Local/Google/Chrome/Application/chrome.exe')
def start_wp_spider(auth_name,institution_name,status_type): #爬取万方信息
# 用 d 模式创建页面对象(默认模式)
page = ChromiumPage()
# 跳转到登录页面
page.get('https://xxx.com/')
time.sleep(1)
#选择点击事件 可以使用 xpath: 后面的是xpath路径
page.ele('xpath://*[@id="basic_searchdomainfilter"]/div[1]/div[1]/div[1]/div/div/input').click()
#这里为input的输入的内容 根据xpath
page.ele('xpath://*[@id="basic_searchdomainfilter"]/div[1]/div[1]/div[2]/input').input('输入的内容')
#根据xpath 获取对应的值内容
page.ele('xpath://*[@id="body"]/div/div/div[1]/div[1]/em').text
#这里通过 organ的 class 获取到这个class里面所有a标签里面的文字
wp = page.ele('.organ')
Wp_a_text = wp.ele('tag:a').text
#这里获取到class为subject的所有a标签并循环获取每个a标签的text文本内容
auth_remark_subject_wp = page.ele('.subject')
subject_wp_List = auth_remark_subject_wp.eles('tag:a')
for subject_list_name in subject_wp_List:
subject_wp = subject_wp+subject_list_name.text+";"
#这里获取到id为CitationRelate的所有li 标签并循环获取每个li标签的text文本内容
table_list_wp = page.ele('#CitationRelate')
table_list_List = table_list_wp.eles('tag:li')
for lists in table_list_List:
print(lists.text)
#根据获取到的class 进行点击
table_list_wp_pages.ele('.layui-laypage-next').click()
#关闭浏览器
page.close_tabs()