2019.06.17

上次作业答案:爬取豆瓣TOP250电影信息

'''
爬取豆瓣TOP250电影信息

主页:
    第一页:
        https://movie.douban.com/top250?start=0&filter=
    第二页:
        https://movie.douban.com/top250?start=25&filter=
    第三页:
        https://movie.douban.com/top250?start=50&filter=
    第十页:
        https://movie.douban.com/top250?start=225&filter=
    GET
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36

re正则:
    # 电影详情页url、图片链接、电影名称、电影评分、导演、主演、电影上映时间、评价人数、简介
    <div class="item">.*?href="(.*?)">.*?src="(.*?)" class="">.*?<span class="title">(.*?)</span>.*?<div class="bd">.*?导演:(.*?)<br>(.*?)</p>.*?<span class="rating_num".*?>(.*?)</span>.*?<span>(.*?)人评价<span class="inq">(.*?)</span>
'''
import requests
import re


headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36'
}
base_url = 'https://movie.douban.com/top250?start={}&filter='

n = 0
for line in range(10):
    print()
    url = base_url.format(n)
    print(type(n))
    n += 25
    print(url)
# 1、往豆瓣TOP250发送请求获取响应数据
response = requests.get(url, headers=headers)

# print(response.text)

# 2、通过正则解析提取数据
# 电影详情页url、图片链接、电影名称、电影评分、评价人数
movie_content_list = re.findall(
    # 正则规则
    # 电影评分、评价人数、

    '<div class="item">.*?href="(.*?)">.*?src="(.*?)" class="">.*?<span class="title">(.*?)</span>.*?<div class="bd">.*?导演:(.*?)<br>(.*?)</p>.*?<span class="rating_num".*?>(.*?)</span>.*?<span>(.*?)人评价.*?<span class="inq">(.*?)</span>',

    # 解析文本
    response.text,

    # 匹配模式
    re.S)

for movie_content in movie_content_list:
    # 解压赋值每一部电影
    detail_url, movie_jpg, name, daoyan, timer, point, num, desc = movie_content
    data = f'电影名称:{name},详情页url:{detail_url}, 图片url:{movie_jpg},导演:{daoyan},上映时间:{timer}, 评分: {point}, 评价人数: {num}, 简介:{desc} \n'
    print(data)

    # 3、保存数据,把电影信息写入文件中
    with open('豆瓣top250.txt', 'a', encoding='utf-8') as f:
        f.write(data)
View Code

 

今日内容

1、requests之POST请求

2、requests高级用法

3、selenium基本使用

4、万能破解登录

 

1、requests之POST请求
'''
post请求访问github
请求url:
    https://github.com/session
请求方式:
    POST
请求头:
    # 上一次请求从哪里来
    Referer:https://github.com/login
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36
请求体:
    只有POST请求才会有请求体。
    commit: 登入
    utf8: ✓
    authenticity_token: 1ZoPGWJBCBMW/IzHozPRLB1UJBfw0/SnHtGeqbKULG1Xb1YPxFhKmKKFPs9meYV0IdjGKnXYqTH9nASzPNYOnw==
    login: shendongnian
    password: 1111
    webauthn-support: supported

'''
import requests
import re

# 一、访问login页面获取token信息
'''
请求url:
    https://github.com/login
请求方式:
    GET
响应头:
    Set-Cookie:
请求头:
    Cookie:
    User-Agent:
'''
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36'
}

response = requests.get(url='https://github.com/login', headers = headers)
# print(response.text)
# 把login页返回的cookies信息转换成字典
login_cookies = response.cookies.get_dict()

authenticity_token = re.findall('<input type="hidden" name="authenticity_token" value="(.*?)" />',response.text,re.S)[0]

print(authenticity_token)

# 二、往sessionurl发送POST请求
'''
post请求登录github
请求url:
    https://github.com/session

请求方式:
    POST

请求头:
    # 上一次请求从哪里来
    Referer:https://github.com/login
    Cookie:...
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36

请求体:
    只有POST请求才会有请求体。
    commit: 登入
    utf8: ✓
    authenticity_token:    1ZoPGWJBCBMW/IzHozPRLB1UJBfw0/SnHtGeqbKULG1Xb1YPxFhKmKKFPs9meYV0IdjGKnXYqTH9nASzPNYOnw==
    login: shendongnian
    password: 1111
    webauthn-support: supported

'''
# 拼接头信息
headers2 = {
    'Referer':'https://github.com/login',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36'
}


# cookies = {
#     'Cookies':''
# }

# 拼接请求体信息
from_data = {
    "commit":"登入",
    "utf8": "",
    "authenticity_token":authenticity_token,
    "login":"tankjam",
    "password":"kermit46709394",
    "webauthn-support":"unsupported"
}

# 往session地址发送post请求
# 携带请求头、请求体、login页的cookie信息

response2 = requests.post(url='https://github.com/session',data=from_data,headers = headers2,cookies=login_cookies)
print(response2.status_code)
# print(response2.text)
with open('github.html','w',encoding='utf-8') as f:
    f.write(response2.text)
View Code

 

2、requests响应

'''
post请求访问github
请求url:
    https://github.com/session
请求方式:
    POST
请求头:
    # 上一次请求从哪里来
    Referer:https://github.com/login
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36
请求体:
    只有POST请求才会有请求体。
    commit: 登入
    utf8: ✓
    authenticity_token: 1ZoPGWJBCBMW/IzHozPRLB1UJBfw0/SnHtGeqbKULG1Xb1YPxFhKmKKFPs9meYV0IdjGKnXYqTH9nASzPNYOnw==
    login: shendongnian
    password: 1111
    webauthn-support: supported

'''
import requests
import re

# 一、访问login页面获取token信息
'''
请求url:
    https://github.com/login
请求方式:
    GET
响应头:
    Set-Cookie:
请求头:
    Cookie:
    User-Agent:
'''
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36'
}

response = requests.get(url='https://github.com/login', headers = headers)
# print(response.text)
# 把login页返回的cookies信息转换成字典
login_cookies = response.cookies.get_dict()

authenticity_token = re.findall('<input type="hidden" name="authenticity_token" value="(.*?)" />',response.text,re.S)[0]

print(authenticity_token)

# 二、往sessionurl发送POST请求
'''
post请求登录github
请求url:
    https://github.com/session

请求方式:
    POST

请求头:
    # 上一次请求从哪里来
    Referer:https://github.com/login
    Cookie:...
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36

请求体:
    只有POST请求才会有请求体。
    commit: 登入
    utf8: ✓
    authenticity_token:    1ZoPGWJBCBMW/IzHozPRLB1UJBfw0/SnHtGeqbKULG1Xb1YPxFhKmKKFPs9meYV0IdjGKnXYqTH9nASzPNYOnw==
    login: shendongnian
    password: 1111
    webauthn-support: supported

'''
# 拼接头信息
headers2 = {
    'Referer':'https://github.com/login',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36'
}


# cookies = {
#     'Cookies':''
# }

# 拼接请求体信息
from_data = {
    "commit":"登入",
    "utf8": "",
    "authenticity_token":authenticity_token,
    "login":"tankjam",
    "password":"kermit46709394",
    "webauthn-support":"unsupported"
}

# 往session地址发送post请求
# 携带请求头、请求体、login页的cookie信息

response2 = requests.post(url='https://github.com/session',data=from_data,headers = headers2,cookies=login_cookies)
print(response2.status_code)
# print(response2.text)
with open('github.html','w',encoding='utf-8') as f:
    f.write(response2.text)
View Code

 

 requests高级用法

import requests

https = http + ssl(携带证书)


#证书验证(大部分网站都是https)
import requests
# 如果是ssl请求,首先检查证书是否合法,不合法则报错,程序终端
response = requests.get('https://www.xiaohuar.com')
print(response.status_code)

# 改进1:去掉报错,但是会报警告
# import requests
# response = requests.get('https://www.xiaohuar.com', verify=False)  # True携带证书 False不携带证书
# # 不验证证书,报警告,返回200
# print(response.status_code)

# 改进2:去掉报错,并且去掉警报信息
import requests
import urllib3
urllib3.disable_warnings()  # 关闭警告
response = requests.get('https://www.xiaohuar.com', verify=False)
print(response.status_code)

# 改进3:加上证书
# 很多网站都是https,但是不用证书也可以访问,大多数情况都是可以携带也可以不携带证书
# 知乎\百度等都是可带可不带
# 有硬性要求的,则必须带,比如对于定向的用户,拿到证书后才有权限访问某个特定网站
import requests
import urllib3
# urllib3.disable_warnings()  # 关闭警告
# 伪代码
response = requests.get(
    'https://www.xiaohuar.com',
    # verify=False,
    # /path/server.crt证书的存放目录,/path/key
    cert=('/path/server.crt', '/path/key'))
print(response.status_code)



'''
超时设置
'''

超时设置
两种超时:float or tuple
timeout=0.1  # 代表接收数据的超时时间
timeout=(0.1,0.2)  # 0.1代表链接超时  0.2代表接收数据的超时时间

import requests

response = requests.get('https://www.baidu.com',
                        timeout=0.0001)

print()

代理设置:先发送请求给代理,然后由代理帮忙发送(封ip是常见的事情)
import requests
proxies={
    # 带用户名密码的代理,@符号前是用户名与密码
    'http':'http://tank:123@localhost:9527',
    'http':'http://localhost:9527',
    'https':'https://localhost:9527',
}
response=requests.get('https://www.12306.cn',
                     proxies=proxies)

print(response.status_code)


'''
爬取西刺免费代理:
    1.访问西刺免费代理页面
    2.通过re模块解析并提取所有代理
    3.通过ip测试网站对爬取的代理进行测试
    4.若test_ip函数抛出异常代表代理作废,否则代理有效
    5.利用有效的代理进行代理测试

<tr class="odd">
      <td class="country"><img src="//fs.xicidaili.com/images/flag/cn.png" alt="Cn"></td>
      <td>112.85.131.99</td>
      <td>9999</td>
      <td>
        <a href="/2019-05-09/jiangsu">江苏南通</a>
      </td>
      <td class="country">高匿</td>
      <td>HTTPS</td>
      <td class="country">
        <div title="0.144秒" class="bar">
          <div class="bar_inner fast" style="width:88%">

          </div>
        </div>
      </td>
      <td class="country">
        <div title="0.028秒" class="bar">
          <div class="bar_inner fast" style="width:97%">

          </div>
        </div>
      </td>

      <td>6天</td>
      <td>19-05-16 11:20</td>
    </tr>
re:
    <tr class="odd">(.*?)</td>.*?<td>(.*?)</td>

'''
import requests
import re
import time

HEADERS = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
}


def get_index(url):
    time.sleep(1)
    response = requests.get(url, headers=HEADERS)
    return response


def parse_index(text):
    ip_list = re.findall('<tr class="odd">.*?<td>(.*?)</td>.*?<td>(.*?)</td>', text, re.S)
    for ip_port in ip_list:
        ip = ':'.join(ip_port)
        yield ip

def test_ip(ip):
    print('测试ip: %s' % ip)
    try:
        proxies = {
            'https': ip
        }

        # ip测试网站
        ip_url = 'https://www.ipip.net/'

        # 使用有效与无效的代理对ip测试站点进行访问,若返回的结果为200则代表当前测试ip正常
        response = requests.get(ip_url, headers=HEADERS, proxies=proxies, timeout=1)

        if response.status_code == 200:
            print(f'有用的ip:{ip}')
            return ip

    # 若ip代理无效则抛出异常
    except Exception as e:
        print(e)

# 使用代理爬取nba
def spider_nba(good_ip):
    url = 'https://china.nba.com/'

    proxies = {
        'https': good_ip
    }

    response = requests.get(url, headers=HEADERS, proxies=proxies)
    print(response.status_code)
    print(response.text)


if __name__ == '__main__':
    base_url = 'https://www.xicidaili.com/nn/{}'

    for line in range(1, 3677):
        ip_url = base_url.format(line)

        response = get_index(ip_url)

        # 解析西刺代理获取每一个ip列表
        ip_list = parse_index(response.text)

        # 循环每一个ip
        for ip in ip_list:
            # print(ip)

            # 对爬取下来的ip 进行测试
            good_ip = test_ip(ip)

            if good_ip:
                # 真是代理,开始测试
                spider_nba(good_ip)


# 认证设置
'''
登录网站时,会弹出一个框,要求你输入用户名与密码(类似于alert),此时无法进入html页面,待授权通过后才能进入html页面。

Requests模块为我们提供了多种身份认证方式,包括基本身份认证等...

其原理指的是通过输入用户名与密码获取用户的凭证来识别用户,然后通过token对用户进行授权。
基本身份认证:
    HTTP Basic Auth是HTTP1.0提出的认证方式。客户端对于每一个realm,通过提供用户名和密码来进行认证的方式当认证失败时,服务器收到客户端请求,返回401。

'''
import requests
# 通过访问github的api来测试
url = 'https://api.github.com/user'
HEADERS = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
}

# 测试1,失败返回401
response = requests.get(url, headers=HEADERS)
print(response.status_code)  # 401
print(response.text)
'''
打印结果:
    {
      "message": "Requires authentication",
      "documentation_url": "https://developer.github.com/v3/users/#get-the-authenticated-user"
    }
'''

# 测试2,通过requests.auth内的HTTPBasicAuth进行认证,认证成功返回用户信息
from requests.auth import HTTPBasicAuth
response = requests.get(url, headers=HEADERS, auth=HTTPBasicAuth('tankjam', 'kermit46709394'))
print(response.text)


# 测试3,通过requests.get请求内的auth参数默认就是HTTPBasicAuth,认证成功返回用户信息
# response = requests.get(url, headers=HEADERS, auth=('tankjam', 'kermit46709394'))
# print(response.text)
'''
打印结果:
    {
      "login": "TankJam",
      "id": 38001458,
      "node_id": "MDQ6VXNlcjM4MDAxNDU4",
      "avatar_url": "https://avatars2.githubusercontent.com/u/38001458?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/TankJam",
      "html_url": "https://github.com/TankJam",
      "followers_url": "https://api.github.com/users/TankJam/followers",
      "following_url": "https://api.github.com/users/TankJam/following{/other_user}",
      "gists_url": "https://api.github.com/users/TankJam/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/TankJam/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/TankJam/subscriptions",
      "organizations_url": "https://api.github.com/users/TankJam/orgs",
      "repos_url": "https://api.github.com/users/TankJam/repos",
      "events_url": "https://api.github.com/users/TankJam/events{/privacy}",
      "received_events_url": "https://api.github.com/users/TankJam/received_events",
      "type": "User",
      "site_admin": false,
      "name": "kermit",
      "company": null,
      "blog": "",
      "location": null,
      "email": null,
      "hireable": null,
      "bio": null,
      "public_repos": 6,
      "public_gists": 0,
      "followers": 0,
      "following": 0,
      "created_at": "2018-04-02T09:39:33Z",
      "updated_at": "2019-05-14T07:47:20Z",
      "private_gists": 0,
      "total_private_repos": 1,
      "owned_private_repos": 1,
      "disk_usage": 8183,
      "collaborators": 0,
      "two_factor_authentication": false,
      "plan": {
        "name": "free",
        "space": 976562499,
        "collaborators": 0,
        "private_repos": 10000
      }
    }
'''


上传文件
import requests

# 上传文本文件
files1 = {'file': open('user.txt', 'rb')}
# files参数是POST请求固定参数
response = requests.post('http://httpbin.org/post', files=files1)
print(response.status_code)  # 200
print(response.text)  # 200

# 上传图片文件
files2 = {'jpg': open('一拳超人.jpg', 'rb')}
response = requests.post('http://httpbin.org/post', files=files2)
print(response.status_code)  # 200
print(response.text)  # 200

# 上传视频文件
files3 = {'movie': open('love_for_GD.mp4', 'rb')}

response = requests.post('http://httpbin.org/post', files=files3)
print(response.status_code)  # 200
print(response.text)  # 200
View Code

 

3、selenium基本使用

'''
selenium模块讲解
一、什么是selenium?
    最初是一个自动化测试工具。可以使用它帮我们驱动浏览器自动去执行某些自定义好的操作。例如在页面中执行JS代码、跳过登录验证。
    (selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法执行javaScript代码的问题。
    selenium可以驱动浏览器自动执行自定义好的逻辑代码,也就是可以通过代码完全模拟成人类使用浏览器自动访问目标站点并操作,那我们也可以拿它来做爬虫。
    selenium本质上是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等...进而拿到网页渲染之后的结果,可支持多种浏览器。)

二、为什么要使用selenium?
    1、优点:
        要使用requests模块登录需要分析大量的复杂通信流程,使用selenium可以轻松跳过登录验证。
    2、缺点:
        浏览器会加载css、js、图片、视频...数据,爬虫效率相比requests模块要低。

三、如何使用?
    下载selenium模块:
        pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium
    下载浏览器驱动:
        http://npm.taobao.org/mirrors/chromedriver/2.38/
'''

# selenium之第一次测试
from selenium import webdriver  # 用来驱动浏览器的

# 调用得到一个动作链对象,破解华东验证码的时候用的,可以拖动图片
from selenium.webdriver import ActionChains

# 按照什么方式查找属性,By.ID,By.CSS_SELECTOR,By.Class
from selenium.webdriver.common.by import By

from selenium.webdriver.common.keys import Keys  # 键盘按键操作

# 和下面WebDriverWait一起用的,EC 是expected_conditions的别名
from selenium.webdriver.support import expected_conditions as EC

# 等待页面加载某些元素
from selenium.webdriver.support.wait import WebDriverWait

import time

# 通过谷歌浏览器驱动打开谷歌浏览器
# chrome = webdriver.Chrome(r'chromedriver.exe的绝对路径')
chrome = webdriver.Chrome(r'D:\Python\chromedriver_win32\chromedriver')  # 括号内输入chromedriver.exe的绝对路径
'''
# chromedriver.exe存放于python解释器的Scripts文件夹中

# chrome是一个驱动对象
chrome = webdriver.Chrome()
'''
'''
实例1
'''

# 若try出现异常
try:
    # 往tank博客主页发送get请求
    # chrome.get('https://www.cnblogs.com/kermitjam')

    # 参数1:驱动对象  参数2:等待时间
    wait = WebDriverWait(chrome, 10)

    # 1、访问百度
    chrome.get('https://www.baidu.com/')

    # 2、查找input输入框
    # 调用EC的presence_of_element_located()
    input_tag = wait.until(EC.presence_of_element_located((By.ID, "kw")))
    # 此处可以写一个元组
    # 参数1:查找属性的方式
    # 参数2:属性的名字

    # 3、搜索一拳超人
    input_tag.send_keys('一拳超人')

    # 4、按键盘回车键
    input_tag.send_keys(Keys.ENTER)

    time.sleep(3)

# 无论发生什么都会关闭浏览器
finally:
    # 关闭浏览器
    chrome.close()



'''
实例2
'''
try:
    # 往tank博客主页发送get请求
    # chrome.get('https://www.cnblogs.com/kermitjam')

    # 参数1:驱动对象  参数2:等待时间
    wait = WebDriverWait(chrome, 10)

    # 1、访问百度
    chrome.get('https://www.jd.com/')

    # 2、查找input输入框
    input_tag = wait.until(EC.presence_of_element_located((By.ID, "key")))

    # 3、搜索唐诗三百首
    input_tag.send_keys('唐诗三百首')

    # 4、根据class属性名称查找标签
    search_button = wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'button')))

    # 5、点击搜索按钮
    search_button.click()

    time.sleep(3)

# 无论发生什么都会关闭浏览器
finally:
    # 关闭浏览器
    chrome.close()
View Code

 

selenium之基本选择器

from selenium import webdriver
import time


'''
隐式等待
'''
# 获取驱动对象
driver = webdriver.Chrome(r'D:\Python\chromedriver_win32\chromedriver')

# 获取
try:
    # 显式等待:等待某个元素加载
    # 参数1:驱动对象  参数2:等待时间
    # wait = WebDriverWait(chrome, 10)

    driver.get('https://china.nba.com')

    # 隐式等待:等待页面所有元素加载
    driver.implicitly_wait(10)
    news_tag = driver.find_element_by_class_name('nav-news')
    # 获取标签对象
    print(news_tag)
    # 获取标签名字
    print(news_tag.ag_name)
    time.sleep(10)


finally:
    chrome.close()



'''
===============所有方法===================
    element是查找一个标签
    elements是查找所有标签

    1、find_element_by_link_text  通过链接文本去找
    2、find_element_by_id 通过id去找
    3、find_element_by_class_name
    4、find_element_by_partial_link_text
    5、find_element_by_name
    6、find_element_by_css_selector
    7、find_element_by_tag_name
'''
try:

    # 往百度主页发送请求
    driver.get('https://www.baidu.com/')
    driver.implicitly_wait(10)

    # 1、find_element_by_link_text 通过链接文本去找
    # 根据登录
    send_tag = driver.find_element_by_link_text('登录')
    send_tag.click()


    # 2、find_element_by_partial_link_text 通过局部文本查找a标签
    login_button = driver.find_element_by_partial_link_text('')
    login_button.click()
    time.sleep(1)

    # 3、find_element_by_class_name 根据class属性名查找
    login_tag = driver.find_element_by_class_name('tang-pass-footerBarULogin')
    login_tag.click()
    time.sleep(1)

    # 4、find_element_by_name  根据name属性查找
    username = driver.find_element_by_name('userName')
    username.send_keys('15055303102')
    time.sleep(1)


    # 5、find_element_by_id  通过id属性名查找
    password = driver.find_element_by_id('TANGRAM__PSP_10__password')
    password.send_keys('shenjin981002')
    time.sleep(1)

    # 6、find_element_by_css_selector 根据属性选择器查找
    # 根据id查找登录按钮
    login_submit = driver.find_element_by_css_selector('#TANGRAM__PSP_10__submit')
    # login_submit = driver.find_element_by_css_selector('.pass-button-submit')
    login_submit.click()

    # 7、find_element_by_tag_name  根据标签名称查找标签
    div = driver.find_element_by_tag_name('div')
    print(div.tag_name)

    time.sleep(10)


finally:
    driver.close()
View Code

 

 

今日作业
  
1、整理课堂笔记并编写博客
  2、爬取快代理(参考爬取西刺代理代码)
    https://www.kuaidaili.com/free/
  3、熟悉selenium模块,敲上课例子
  4、自动登录抽屉新热榜

1、爬取快代理
(1)先爬取快代理IP
#爬取代理IP

from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy
from selenium.webdriver.common.proxy import ProxyType
from selenium.webdriver.common import desired_capabilities
import time
from random import randint
from bs4 import BeautifulSoup
import pymysql

'''
PhantomJS常用配置
'''
#增加头信息
headers = {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
    "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
    'Accept-Charset': 'utf-8',
    "User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64;rv:47.0) Gecko/20100101 Firefox/47.0",
    "Host": "www.kuaidaili.com",
    "Connection": "keep-alive"
}

#DesiredCapabilities 手动设置爬取时你所期望的功能配置
for key in headers:
    webdriver.DesiredCapabilities.PHANTOMJS['phantomjs.page.customHeaders.{}'.format(key)] = headers[key]
proxy=Proxy(
    {
        'proxyType':ProxyType.MANUAL,    #manual 手工的,手动的
        'httpProxy':'181.16.136.6:38319'
    }
)

desired_capabilities = desired_capabilities.DesiredCapabilities.PHANTOMJS.copy()
#把代理ip加入到技能中
proxy.add_to_capabilities(desired_capabilities)

#禁止加载图片,我们只需要爬取数据,并不需要加载图片,这样可以加快爬取速度
desired_capabilities["phantomjs.page.settings.loadImages"]=False

#启动磁盘缓存
desired_capabilities["phantomjs.page.settings.disk-cache"]=True

#将配置好的PhantomJS期望的功能加入到PhantomJS驱动中
browser = webdriver.PhantomJS( desired_capabilities=desired_capabilities )

#用来存放爬取的数据 
class Item(object):
    ip=None
    port=None
    ptype=None

class spyderKuaidaili(object):
    def __init__(self,url):
        #连接数据库
        self.db = pymysql.connect(host='localhost', port=3306,
                    user='root', passwd='a', db='python', charset='utf8')
        self.cursor=self.db.cursor()
        self.url=url
        self.items=[]
        try:
              browser.get(url)
              for i in range(10):   #循环十次,爬取十页              
              time.sleep( randint(2,5) )  #爬取太勤快会被封ip的
              result=browser.page_source   #得到网页源码
              list1=self.parseHtml(result)  #去解析该网页,得到需要的数据
              self.items.append(list1)     #得到的数据添加到列表里去
              #这一页代理获取完成,开始selenium自动点击下一页,首先需得到下一页的标签
              aTags=browser.find_elements_by_xpath("//div[@id='listnav']/ul/li/a")
              for aElement in aTags:
                    #如果元素是 invisable 的,则用text取不到,只能用innerHTML取
                    #print( aElement.get_attribute('innerHTML') )
                    if aElement.get_attribute('innerHTML')==str(i+2):
                        #满足条件,则是需要点击的那一页
                        print('点击了第:',str(i+2),'')
                        aElement.click()        #aElement本身是个a标签,点击则执行href跳转到相应页面
                        browser.switch_to.window(browser.window_handles[0])
                        break                        
        except Exception as e:
            print('a==========%s' % e )
            print("爬取完毕...")
            self.cursor.close()
            self.db.close()
            browser.close()
            browser.quit()
            print("已关闭浏览器...")
    def parseHtml(self,content):
        items=[]
        soup=BeautifulSoup(content,'lxml')
        divTag=soup.find('div',attrs={'id':'list'})
        tags=divTag.table.tbody.find_all('tr')
        for tag in tags:
            item=Item()
            item.ip=tag.find('td',attrs={'data-title':'IP'}).get_text().strip()
            item.port=tag.find('td',attrs={'data-title':'PORT'}).get_text().strip()
            item.ptype=tag.find('td',attrs={'data-title':'类型'}).get_text().strip()
            items.append(item)   #将得到的item对象存入列表
            print( item.ip,' ',item.port,' ',item.ptype )
        #将一页的数据一起存入数据库
        self.insert(items)
        return items

    def insert(self,items):  #[Item,Item...Item]
        print("开始插入数据库")
        sql='insert into kuaidaili(kip,kport,kptype) values(%s,%s,%s)'
        params=[]
        for item in items:
            params.append( ( item.ip,item.port,item.ptype ) )
        try:
            #进行批量插入
            self.cursor.executemany(sql,params)
            self.db.commit()
        except Exception as e:
            print("插入数据库异常")
            self.db.rollback()

if __name__=='__main__':
    url='https://www.kuaidaili.com/free/inha/'
    spyderKuaidaili(url)
View Code
下面是输出的首尾截图:

(2)判断这些IP是否可用
import requests
import pymysql

#将上面存入数据库的代理IP拿出来做判断
def getIpFromMysql():
    db=pymysql.connect(host='localhost',port=3306,
                   user='root',passwd='a',db='python',charset='utf8')
    cursor=db.cursor()
    sql='select * from kuaidaili'
    try:
        cursor.execute(sql)
        results=cursor.fetchall()
        allIp=[]
        for row in results:
            lst=[]
            kip=row[1]
            kport=row[2]
            kptype=row[3]
            ip=[kip,kport,kptype]
            allIp.append(ip)
        checkIp( allIp )    #将所有ip拿去检测
    except:
        print('查询报错')

class checkIp(object):
    
    def __init__(self,allIp):
        self.allIp=allIp
        self.check()
    
    def check(self):
        for ip in self.allIp:
            kip=ip[0]
            kport=ip[1]
            kptype=ip[2].lower()
            url=kptype+"://"+kip+":"+kport
            print(url)
            try:
            #使用代理ip去访问百度,如果ip不能用,则会报错
                requests.get( 'http://www.baidu.com', proxies={ kptype:url } )
            except:
                print('=============================failure')
            else:
                print('=============================success')    

if __name__=='__main__':
    getIpFromMysql()
    
View Code

得到的结果部分截图如下:

 

2、自动登录抽屉新热榜
import requests
 
# 一定要添加浏览器,不然可能会遇到网络防火墙
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:58.0) Gecko/20100101 Firefox/58.0'}
 
# 第一次去抽屉拿到需要授权的cookies
r1 = requests.get(
    url='http://dig.chouti.com/',
    headers=headers
)
 
# 获取第一次进入主页得到的cookie
r1_cookie_dic = r1.cookies.get_dict()
print(r1_cookie_dic)
 
# 登录的提交参数
post_data = {
    "phone": '86' + '你抽屉官网注册的手机号',
    'password': '你的抽屉官网密码',
    'oneMonth': 1  # 一个月内免登陆
}
 
# 第二次登录抽屉
response = requests.post(
    url='https://dig.chouti.com/login',
    # 为了模拟浏览器得行为,每次都要带着请求头去这样这样不会容易被发现是爬虫。
    headers=headers,
    data=post_data,
    # 第二次登陆发送post请求时,应该将第一次得cookies带过去授权,所以要带着cookies。
    cookies=r1_cookie_dic
)
print(response.text)
# 获取第二次登录返回的cookie,尽管有返回,但是第二次返回的这个cookie没有用
cookie_dic = response.cookies.get_dict()
print(cookie_dic)
 
# 进入个人设置页面
response = requests.get(
    url='https://dig.chouti.com/profile',
    # 模拟浏览器
    headers=headers,
    # 提交cookie(一般网站使用下面这句代码就行,抽屉不行)
    # cookies=cookie_dic,
    # 抽屉官网有点淘气,阴了我们一下,将授权好的第一次的cookies带进去访问
    cookies={'gpsd': r1_cookie_dic.get('gpsd')}
)
# 输出返回的页面
print(response.text)
View Code

 

 

 

转载于:https://www.cnblogs.com/jrc123/p/11042970.html

21.11 1.10 23.38 81.87 18.11 1.09 21.93 75.98 NiOx 0 0 1 1 3 0 0 PHMT HTL_I.M. 10.1016/j.jeche m.2020.12.035 19.36 1.09 22.62 78.24 18.11 1.09 21.93 75.98 NiOx 0 0 1 1 3 0 0 ETMT HTL_I.M. 10.1016/j.jeche m.2020.12.035 18.57 1.09 22.10 77.07 18.11 1.09 21.93 75.98 NiOx 0 0 1 1 3 0 0 PRMT HTL_I.M. 10.1016/j.jeche m.2020.12.035 19.50 1.11 22.96 80.00 13.50 1.03 19.37 75.00 PTAA 0 0 1 1 3 0 0 IDIC ETL_I.M. 10.1002/adma.2 01604545 21.00 1.14 23.70 78.00 19.20 1.03 23.70 79.00 PTAA 0 0.85 0.15 1 2.55 0.45 0 Choline chloride ETL_I.M. 10.1038/nenerg y.2017.102 19.60 1.08 22.70 80.00 17.10 1.04 22.50 73.00 PTAA 0 0 1 1 3 0 0 L-α- phosphati dylcholine ETL_I.M. 10.1038/nenerg y.2017.102 17.20 1.15 19.40 77.00 12.60 1.12 17.10 66.00 PTAA 0 0.83 0.17 1 1.8 1.2 0 Choline chloride ETL_I.M. 10.1038/nenerg y.2017.102 20.00 1.15 22.90 76.00 17.10 1.04 22.50 73.00 PTAA 0 0 1 1 3 0 0 Choline chloride ETL_I.M. 10.1038/nenerg y.2017.102 21.40 1.21 22.49 78.50 19.10 1.08 22.40 78.80 PTAA 0.05 0.808 0.143 1 2.558 0.443 0 D4TBP ETL_I.M. 10.1021/jacs.8b 13091 19.60 1.10 22.39 79.60 19.10 1.08 22.40 78.80 PTAA 0.05 0.808 0.143 1 2.558 0.443 0 PA ETL_I.M. 10.1021/jacs.8b 13091 23 19.90 1.12 22.19 80.30 19.10 1.08 22.40 78.80 PTAA 0.05 0.808 0.143 1 2.558 0.443 0 PEA ETL_I.M. 10.1021/jacs.8b 13091 20.10 1.12 22.42 80.10 19.10 1.08 22.40 78.80 PTAA 0.05 0.808 0.143 1 2.558 0.443 0 VA ETL_I.M. 10.1021/jacs.8b 13091 20.60 1.15 22.62 79.00 19.10 1.08 22.40 78.80 PTAA 0.05 0.808 0.143 1 2.558 0.443 0 PAA ETL_I.M. 10.1021/jacs.8b 13091 20.40 1.15 22.54 78.50 19.10 1.08 22.40 78.80 PTAA 0.05 0.808 0.143 1 2.558 0.443 0 PA.PEA ETL_I.M. 10.1021/jacs.8b 13091 21.10 1.13 23.30 80.00 19.10 1.06 22.70 80.00 PTAA 0 0.85 0.15 1 2.55 0.45 0 DPSI B.M. 10.1002/adma.2 01803428 20.20 1.12 22.80 79.00 18.40 1.08 22.60 75.00 PTAA 0 0 1 1 3 0 0 DPSI B.M. 10.1002/adma.2 01803428 20.30 1.10 22.90 80.60 16.90 1.07 21.10 74.90 PTAA 0 0 1 1 3 0 0 PS ETL_I.M. 10.1002/adma.2 01600969 18.80 1.06 22.90 77.60 16.90 1.07 21.10 74.90 PTAA 0 0 1 1 3 0 0 PVDF- TrFE ETL_I.M. 10.1002/adma.2 01600969 18.10 1.05 22.80 75.60 16.90 1.07 21.10 74.90 PTAA 0 0 1 1 3 0 0 Teflon ETL_I.M. 10.1002/adma.2 01600969 18.90 1.05 22.70 79.30 16.90 1.07 21.10 74.90 PTAA 0 0 1 1 3 0 0 Fluoro- silane ETL_I.M. 10.1002/adma.2 01600969 20.22 1.11 22.80 80.20 19.08 1.09 22.40 78.10 Others 0 0 1 1 3 0 0 TMTA B.M. 10.1038/s41467 -018-06204-2 18.70 1.05 22.12 80.30 16.40 1.04 20.14 78.70 NiOx 0 0 1 1 3 0 0 PU B.M. 10.1002/adfm.2 01703061 18.75 1.08 22.53 77.42 18.52 1.07 22.50 77.20 NiOx 0 0 1 1 3 0 0 SP1 B.M. 10.1002/aenm.2 01803766 19.27 1.09 22.63 77.82 18.52 1.07 22.50 77.20 NiOx 0 0 1 1 3 0 0 SP2 B.M. 10.1002/aenm.2 01803766 24 20.43 1.15 22.69 78.55 18.52 1.07 22.50 77.20 NiOx 0 0 1 1 3 0 0 SP3 B.M. 10.1002/aenm.2 01803766 20.67 1.13 22.91 79.80 18.89 1.07 22.72 77.70 NiOx 0.048 0.81 0.143 1.02 2.577 0.423 0 PBTI B.M. 10.1002/adfm.2 01808855 20.80 1.20 22.51 77.00 19.58 1.10 22.53 79.00 PTAA 0 0.845 0.155 1.047 2.549 0.451 0 SSG-G ETL_I.M. 10.1126/science .aap9282 19.80 1.08 23.80 81.00 18.50 1.02 23.20 79.00 NiOx 0.05 0.79 0.16 1 2.7 0.3 0 BMIMBF 4 B.M. 10.1038/s41586 -019-1357-2 19.28 1.08 22.49 79.40 19.16 1.07 22.51 79.60 PTAA 0.05 0.81 0.14 1 2.56 0.44 0 Octylamm onium iodide ETL_I.M. 10.1126/science .aax3294 20.60 1.14 22.62 79.90 19.16 1.07 22.51 79.60 PTAA 0.05 0.81 0.14 1 2.56 0.44 0 Methylam monium sulfate ETL_I.M. 10.1126/science .aax3294 21.11 1.16 22.63 80.40 19.16 1.07 22.51 79.60 PTAA 0.05 0.81 0.14 1 2.56 0.44 0 Octylamm onium sulfate ETL_I.M. 10.1126/science .aax3294 21.30 1.15 23.40 79.40 20.50 1.06 20.50 80.00 PTAA 0.05 0.874 0.076 1 2.764 0.236 0 PEA B.M. 10.1038/s41560 -019-0538-4 20.80 1.20 22.51 77.00 20.50 1.06 20.50 80.00 PTAA 0.05 0.874 0.076 1 2.764 0.236 0 BA B.M. 10.1038/s41560 -019-0538-4 23.00 1.17 24.10 81.60 20.50 1.06 20.50 80.00 PTAA 0.05 0.874 0.076 1 2.764 0.236 0 Oam B.M. 10.1038/s41560 -019-0538-4 20.73 1.16 24.12 74.40 19.55 1.10 23.81 74.80 PTAA 0 0 1 0.941 3 0 0 PEAI ETL_I.M. 10.1002/solr.20 1900243 19.30 1.01 23.10 82.70 16.60 1.00 21.40 77.30 Others 0 0 1 1.077 2.795 0 0.205 INIC-1F ETL_I.M. 10.1039/C7TA0 6923E 18.80 1.01 22.80 81.50 16.60 1.00 21.40 77.30 Others 0 0 1 1.077 2.795 0 0.205 INIC-2F ETL_I.M. 10.1039/C7TA0 6923E 21.00 1.12 22.70 82.80 18.30 1.08 22.00 77.20 PTAA 0 0 1 1 3 0 0 DAP B.M. 10.1126/sciadv. aav8925 25 21.50 1.16 23.40 79.40 17.00 1.06 23.40 68.40 PTAA 0.05 0.7 0.25 1 3 0 0 DAP B.M. 10.1126/sciadv. aav8925 22.31 1.21 22.59 81.63 20.09 1.12 22.66 79.15 PTAA 0.05 0.792 0.158 1.029 2.534 0.466 0 BDAI HTL_I.M. 10.1016/j.joule. 2020.04.001 20.57 1.15 22.65 78.99 20.09 1.12 22.66 79.15 PTAA 0.05 0.792 0.158 1.029 2.534 0.466 0 GAI HTL_I.M. 10.1016/j.joule. 2020.04.001 21.64 1.20 22.53 80.04 20.09 1.12 22.66 79.15 PTAA 0.05 0.792 0.158 1.029 2.534 0.466 0 PEAI HTL_I.M. 10.1016/j.joule. 2020.04.001 18.35 1.12 21.35 76.74 15.59 1.06 20.79 70.74 NiOx 0 0 1 1 3 0 0 IT-4F B.M. 10.1039/C8TA0 0583D 18.28 1.02 22.05 81.01 15.37 1.02 19.07 79.23 NiOx 0 0 1 1 3 0 0 F-PDI B.M. 10.1002/aenm.2 01900198 19.26 1.07 22.74 79.90 17.62 1.06 21.24 78.25 NiOx 0.05 0.791 0.158 1.029 2.534 0.466 0 F-PDI B.M. 10.1002/aenm.2 01900198 18.22 1.09 22.77 73.72 17.38 1.09 22.31 71.00 PTAA 0.05 0.808 0.143 1.035 2.557 0.443 0 PMMA HTL_I.M. 10.1039/C9EE0 0872A 17.60 1.10 20.01 80.00 14.64 1.08 18.18 74.00 NiOx 0 0 1 1 3 0 0 C8 ETL_I.M. 10.1021/acsener gylett.6b00327 16.99 1.05 20.67 78.98 14.00 1.01 19.11 72.73 NiOx 0 0 1 1 3 0 0 PCBM:IT IC B.M. 10.1039/C9TC0 2457C 15.91 1.03 20.59 74.24 14.00 1.01 19.11 72.73 NiOx 0 0 1 1 3 0 0 ITIC B.M. 10.1039/C9TC0 2457C 18.78 1.09 22.43 77.10 17.78 1.07 21.98 75.40 Others 0 0 1 1 3 0 0 IDIC-Th B.M. 10.1039/C9TA0 6439G 20.01 1.12 22.67 79.10 17.78 1.07 21.98 75.40 Others 0 0 1 1 3 0 0 IDIS-Th B.M. 10.1039/C9TA0 6439G 19.75 1.12 22.05 80.00 18.19 1.07 21.63 78.60 NiOx 0 0 1 1 3 0 0 F6TCNN Q HTL_I.M. 10.1002/adma.2 01800515 26 20.86 1.12 23.18 80.30 19.69 1.09 22.70 79.60 NiOx 0.048 0.81 0.143 1.02 2.577 0.423 0 F6TCNN Q HTL_I.M. 10.1002/adma.2 01800515 19.64 1.14 21.85 78.60 18.40 1.09 21.65 77.90 PTAA 0.05 0.792 0.158 1.03 2.534 0.466 0 PFN-P2 HTL_I.M. 10.1038/s41560 -018-0219-8 18.1 1.03 21.81 80.30 15.40 1.04 19.39 76.20 NiOx 0 0 1 1 3 0 0 1ab HTL_I.M. 10.1002/adfm.2 01808625 17.7 1.04 21.92 77.40 15.40 1.04 19.39 76.20 NiOx 0 0 1 1 3 0 0 1bb HTL_I.M. 10.1002/adfm.2 01808625 18.52 1.09 21.12 80.35 16.23 1.03 20.05 76.70 PTAA 0 0 1 1 3 0 0 APPA B.M. 10.1021/acsami. 9b15607 20.69 1.12 22.88 81.00 18.74 1.06 22.23 79.00 PTAA 0 0 1 1 2.55 0.45 0 APPA B.M. 10.1021/acsami. 9b15607 17.70 1.06 21.40 77.90 17.30 1.07 20.70 77.70 PTAA 0 0 1 1.03 3 0 0 NMP B.M. 10.1021/acsami. 9b15867 18.40 1.07 23.10 74.20 17.28 1.07 20.79 77.65 PTAA 0.06 0.94 0 1.03 3 0 0 NMP B.M. 10.1021/acsami. 9b15867 20.28 1.13 23.35 76.80 13.96 1.13 16.55 74.00 NiOx 0 0.3 0.7 1 2.8 0 0.2 DRCN5T B.M. 10.1002/solr.20 1800327 20.09 1.11 23.58 76.70 18.87 1.08 22.73 77.20 PTAA 0 0 1 0.952 3 0 0 PS HTL_I.M. 10.1002/smll.20 1704007 20.06 1.11 23.46 76.70 18.87 1.08 22.73 77.20 Others 0 0 1 0.952 3 0 0 PMMA HTL_I.M. 10.1002/smll.20 1704007 20.32 1.12 23.46 77.50 18.87 1.08 22.73 77.20 PTAA 0 0 1 0.952 3 0 0 PMMA HTL_I.M. 10.1002/smll.20 1704007 18.20 1.02 24.60 72.00 15.50 0.86 25.10 71.00 PTAA 0.049 0.951 0 1 3 0 0 PEAI B.M. 10.1021/acsaem .8b01964 20.05 1.09 23.07 79.41 17.34 1.05 21.93 75.21 PTAA 0 0 1 1 3 0 0 TTC ETL_I.M. 10.1007/s40820 -019-0282-0 27 20.67 1.13 22.91 79.80 18.89 1.07 22.72 77.70 NiOx 0.048 0.81 0.143 1.02 2.577 0.423 0 PBTI B.M. 10.1002/adfm.2 01808855 21.45 1.17 22.50 81.42 19.10 1.07 22.59 79.19 PTAA 0 0 1 1 2.8 0 0.2 DTA B.M. 10.1039/C9TA0 6718C 20.41 1.09 22.35 83.63 17.53 1.07 21.18 77.50 Others 0 0 1 1 2.8 0 0.2 PDI-T ETL_I.M. 10.1039/C9TA0 7349C 20.17 1.09 22.24 82.98 17.53 1.07 21.18 77.50 Others 0 0 1 1 2.8 0 0.2 PDI-V ETL_I.M. 10.1039/C9TA0 7349C 20.65 1.10 23.09 81.40 13.24 0.91 19.57 74.10 NiOx 0 1 0 1 3 0 0 MACl ETL_I.M. 10.1039/C7EE0 1675A 20.50 1.13 23.33 77.60 19.95 1.10 23.30 77.80 NiOx 0.057 0.802 0.141 0.981 2.571 0.429 0 PFN-P2 HTL_I.M. 10.1039/C9CC0 4364K 21.10 1.15 22.70 80.90 19.10 1.10 22.50 77.10 PTAA 0 0 1 1 3 0 0 TEOS B.M. 10.1021/acsener gylett.9b00608 21.50 1.15 23.10 81.10 19.10 1.10 22.50 77.10 PTAA 0 0.85 0.15 1 2.55 0.45 0 TEOS B.M. 10.1021/acsener gylett.9b00608 21.60 1.12 23.50 82.00 18.20 1.06 22.00 78.00 NiOx 0 0 1 1.3 3 0 0 DMAI B.M. 10.1002/adma.2 01903559 17.76 1.05 21.57 74.98 15.11 1.04 18.24 76.35 NiOx 0 0 1 1 3 0 0 Urea B.M. 10.1002/aenm.2 01802323 20.18 1.08 22.94 81.25 18.13 1.08 21.31 79.13 PTAA 0 0 1 1.08 3 0 0 Isatin-Cl B.M. 10.1002/solr.20 1900529 20.15 1.09 23.11 80.00 19.93 1.09 23.14 79.00 PTAA 0 0.4 0.6 1 3 0 0 PbAc2 B.M. 10.1002/adma.2 01604758 21.01 1.13 23.02 80.90 17.98 1.08 21.71 76.90 PTAA 0.05 0.792 0.158 1.029 2.534 0.466 0 PPEAI B.M. 10.1039/C9TA0 3898A 20.06 1.12 22.19 80.42 18.27 1.08 21.51 78.63 Others 0 0 1 1 3 0 0 Cl-FACl B.M. 10.1039/C9TA0 1319A 28 20.89 1.15 23.01 79.10 17.70 1.08 21.32 76.80 NiOx 0 0 1 1.05 3 0 0 PPEA ETL_I.M. 10.1002/adfm.2 01808119 19.51 1.12 22.03 78.90 17.70 1.08 21.32 76.80 NiOx 0 0 1 1.05 3 0 0 PPA ETL_I.M. 10.1002/adfm.2 01808119 20.68 1.11 23.12 80.30 18.26 1.09 22.99 72.60 Others 0 0 1 1 3 0 0 E2CA B.M. 10.1016/j.nanoe n.2019.02.009 20.40 1.11 22.80 80.60 19.70 1.08 22.50 80.90 PTAA 0.05 0.792 0.158 1.03 2.534 0.466 0 PS ETL_I.M. 10.1039/C7EE0 0899F 20.08 1.11 22.84 79.20 17.85 1.06 22.57 75.32 PTAA 0.077 0.769 0.154 1.077 2.561 0.439 0 NO3-C3N4 B.M. 10.1002/solr.20 1900413 18.28 1.08 22.37 75.68 17.85 1.06 22.57 75.32 PTAA 0.077 0.769 0.154 1.077 2.561 0.439 0 OH-C3N4 B.M. 10.1002/solr.20 1900413 18.58 1.07 22.37 75.68 17.85 1.06 22.57 75.32 PTAA 0.077 0.769 0.154 1.077 2.561 0.439 0 NH3-C3N4 B.M. 10.1002/solr.20 1900413 18.09 1.06 22.47 75.96 17.85 1.06 22.57 75.32 PTAA 0.077 0.769 0.154 1.077 2.561 0.439 0 SO3-C3N4 B.M. 10.1002/solr.20 1900413 20.10 1.16 21.70 80.00 18.50 1.06 21.70 81.00 PTAA 0 0 1 1 3 0 0 NMA B.M. 10.1002/adfm.2 01906763 17.60 1.20 18.70 79.00 16.30 1.13 18.30 79.00 PTAA 0 0 1 1 2.4 0.6 0 NMA B.M. 10.1002/adfm.2 01906763 19.10 1.18 20.10 81.00 17.70 1.12 20.10 79.00 PTAA 0 0 1 1 2.7 0.3 0 NMA B.M. 10.1002/adfm.2 01906763 19.50 1.11 21.80 81.00 18.70 1.06 22.00 81.00 PTAA 0 0 1 1 3 0 0 PEAI B.M. 10.1002/adfm.2 01906763 19.30 1.11 21.40 81.00 18.70 1.06 22.00 81.00 PTAA 0 0 1 1 3 0 0 PMAI B.M. 10.1002/adfm.2 01906763 20.78 1.12 23.01 81.00 17.32 1.04 22.21 75.00 NiOx 0 0 1 1 3 0 0 PEO B.M. 10.1016/j.nanoe n.2019.104229 29 20.43 1.08 22.68 83.40 17.38 1.06 22.19 73.90 NiOx 0 0 1 1 3 0 0 PPDIN6 ETL_I.M. 10.1016/j.nanoe n.2018.07.063 20.05 1.07 22.80 82.20 17.18 1.01 21.48 79.17 Others 0 0 1 1 3 0 0 PASP HTL_I.M. 10.1039/C9TA0 1947B 20.15 1.12 22.94 78.19 16.26 1.06 21.06 72.84 NiOx 0 0 1 1 3 0 0 SDBS HTL_I.M. 10.1016/j.jpows our.2019.22758 4 20.15 1.09 23.45 79.14 16.26 1.06 21.06 72.84 NiOx 0 0.85 0.15 1 2.55 0.45 0 Ca(acac)2 ETL_I.M. 10.1039/C9TC0 3259B 18.23 1.04 23.02 75.95 14.53 1.02 21.49 66.29 NiOx 0 0 1 1 3 0 0 Ca(acac)2 ETL_I.M. 10.1039/C9TC0 3259B 20.73 1.12 23.20 80.00 17.42 1.06 21.78 76.00 PTAA 0 0 1 1 3 0 0 PEO B.M. 10.1021/acsaem .0c00823 20.31 1.09 24.27 76.55 16.54 1.05 22.98 68.32 NiOx 0 0 1 1 3 0 0 PEAI HTL_I.M. 10.1021/acsami. 9b18217 19.10 1.07 23.21 77.00 17.40 1.05 22.38 74.00 PTAA 0 0 1 1 3 0 0 DMBI-2- Th B.M. 10.1002/adfm.2 02001788 20.90 1.13 23.41 79.00 17.40 1.05 22.38 74.00 PTAA 0 0 1 1 3 0 0 DMBI-2- Th-I B.M. 10.1002/adfm.2 02001788 20.80 1.09 23.53 80.85 20.08 1.06 23.56 80.62 PTAA 0 0 1 1 3 0 0 Cys. HCl ETL_I.M. 10.1021/acsener gylett.0c01297 19.61 1.11 23.19 76.00 16.97 1.11 22.50 67.80 Others 0 0 1 0.909 3 0 0 FPyBr ETL_I.M. 10.1039/C7TA0 4995A 18.81 1.07 22.14 79.50 17.16 1.05 21.69 75.10 NiOx 0 0 1 1 3 0 0 YC-1 HTL_I.M. 10.1002/pip.320 5 19.83 1.13 22.50 77.72 17.91 1.06 21.87 77.34 Others 0 0.802 0.198 0.844 2.684 0.141 0.174 TMTA B.M.&ETL _I.M. 10.1016/j.nanoe n.2019.103962 18.58 1.06 22.19 79.00 15.53 1.06 20.35 72.00 NiOx 0 0 1 1 3 0 0 2,6-Py ETL_I.M. 10.1039/C7TA0 4851C 30 18.90 1.04 23.16 78.00 16.92 1.04 21.37 74.60 PTAA 0 0 1 1 3 0 0 FAAc B.M. 10.1039/C8TC0 2507J 18.18 1.10 21.57 76.70 16.92 1.04 21.37 74.60 NiOx 0 0 1 1 3 0 0 SY1 HTL_I.M. 10.1021/acsami. 9b13952 18.96 1.10 21.76 79.10 16.92 1.04 21.37 74.60 NiOx 0 0 1 1 3 0 0 SY2 HTL_I.M. 10.1021/acsami. 9b13952 18.44 1.10 21.71 77.10 16.92 1.04 21.37 74.60 NiOx 0 0 1 1 3 0 0 SY4 HTL_I.M. 10.1021/acsami. 9b13952 19.30 1.08 21.70 82.50 19.10 1.05 23.10 80.30 Others 0 0 1 1 3 0 0 TaTm HTL_I.M. 10.1021/acs.che mmater.9b0139 6 19.10 1.05 23.10 80.30 18.10 1.02 22.60 77.90 Others 0 0 1 1 3 0 0 DAGCl B.M. 10.1039/C9QM 00112C 19.50 1.09 22.35 80.00 17.55 1.06 21.25 78.00 PTAA 0 0 1 1 3 0 0 CB B.M. 10.1039/C8NR 10125F 17.59 1.04 22.53 75.80 14.46 1.02 20.20 70.20 NiOx 0 0 1 1 3 0 0 FDA HTL_I.M. 10.1039/C7NR 08750K 19.42 1.16 22.30 75.20 16.49 1.03 21.70 73.80 PTAA 0 0 1 1 3 0 0 PS ETL_I.M. 10.1002/adma.2 01700159 19.60 1.11 22.90 77.40 19.10 1.08 22.40 78.80 PTAA 0 0 1 1 3 0 0 PFN-Br HTL_I.M. 10.1002/adma.2 01901090 20.05 1.08 23.23 79.93 16.66 1.03 22.09 73.22 Others 0.1 0.9 0 1 2.6 0.4 0 2- Acetylpyri dine ETL_I.M. 10.1039/C9TA0 7238A 18.51 1.06 22.79 76.62 16.66 1.03 22.09 73.22 Others 0.1 0.9 0 1 2.6 0.4 0 3- Acetylpyri dine ETL_I.M. 10.1039/C9TA0 7238A 18.11 1.05 22.62 76.24 16.66 1.03 22.09 73.22 Others 0.1 0.9 0 1 2.6 0.4 0 4- Acetylpyri dine ETL_I.M. 10.1039/C9TA0 7238A 18.11 1.12 22.63 71.50 17.84 1.09 22.19 73.90 Others 0 0 1 1 3 0 0 BaAc2 B.M. 10.1039/C9TC0 4067F 31 18.81 1.06 22.78 77.90 16.88 1.05 21.37 75.95 PTAA 0 0 1 1 3 0 0 PbAc2 B.M. 10.1002/solr.20 1800066 18.00 1.06 22.20 77.00 16.80 1.04 21.22 68.75 NiOx 0.059 0.769 0.172 0.996 2.512 0.488 0 Mg(AcO)2 HTL_I.M. 10.1002/aenm.2 01901642 19.60 1.11 22.31 79.10 17.20 1.05 21.17 77.20 Others 0.15 0.85 0 1.05 2.855 0.145 0 MA B.M. 10.1021/acsami. 9b03323 19.44 1.10 22.55 78.20 16.01 1.01 21.83 72.70 PTAA 0 0 1 1 3 0 0 NH4SCN ETL_I.M. 10.1002/adfm.2 01704836 19.22 1.13 21.85 78.00 17.87 1.09 21.07 78.00 Others 0 0 1 1.05 3 0 0 5-AVA HTL_I.M. 10.1002/admi.2 01800645 18.04 1.12 21.71 74.43 16.34 1.04 21.08 74.41 PTAA 0 0 1 1 3 0 0 TPPCl B.M. 10.1021/acsome ga.8b01061 18.61 1.08 22.50 76.60 15.89 1.01 20.74 75.80 PTAA 0 1 0 1 3 0 0 NH4SCN ETL_I.M. 10.1016/j.nanoe n.2018.11.021 18.13 1.09 21.69 76.70 15.78 1.04 20.39 74.40 PTAA 0 0 1 1 3 0 0 NH4SCN ETL_I.M. 10.1016/j.nanoe n.2018.11.021 18.54 1.03 22.27 79.00 16.93 1.04 21.41 76.00 Others 0 0 1 1 3 0 0 ITCPTC- Se ETL_I.M. 10.1039/C8TA0 0492G 18.69 1.03 22.47 78.00 16.93 1.04 21.41 76.00 Others 0 0 1 1 3 0 0 ITCPTC- Th ETL_I.M. 10.1039/C8TA0 0492G 18.13 1.08 22.38 75.00 15.98 1.04 21.34 72.00 NiOx 0 0 1 1 3 0 0 DBU B.M. 10.1039/C8CC0 2329H 18.00 1.05 21.80 75.00 15.10 1.04 20.40 68.00 Others 0 0 1 1 3 0 0 B4PyMP M ETL_I.M. 10.1016/j.nanoe n.2017.05.049 18.80 1.06 22.40 76.00 15.10 1.04 20.40 68.00 Others 0 0 1 1 3 0 0 3TPYMB ETL_I.M. 10.1016/j.nanoe n.2017.05.049 19.51 1.08 22.14 82.00 16.93 1.05 21.07 77.00 Others 0 0 1 1 3 0 0 ITCPTC ETL_I.M. 10.1039/C8TA0 6730A 32 18.89 1.07 21.78 81.00 16.93 1.05 21.07 77.00 Others 0 0 1 1 3 0 0 IDT6CN ETL_I.M. 10.1039/C8TA0 6730A 17.54 1.05 21.36 78.00 16.93 1.05 21.07 77.00 Others 0 0 1 1 3 0 0 IDTCN ETL_I.M. 10.1039/C8TA0 6730A 18.01 1.07 22.25 75.62 16.20 0.98 21.78 75.62 Others 0 0 1 0.909 3 0 0 PTPD HTL_I.M. 10.1002/aenm.2 01701659 18.30 1.11 23.60 70.00 16.20 1.05 20.90 74.40 NiOx 0 0 1 1.05 3 0 0 Cys HTL_I.M. 10.1016/j.nanoe n.2018.01.017 19.30 1.15 21.50 78.00 17.70 1.10 21.30 76.80 Others 0.065 0.791 0.144 1.006 2.571 0.429 0 PVP HTL_I.M. 10.1002/solr.20 1800151 19.01 1.10 22.57 76.50 17.02 1.06 23.40 68.40 Others 0 0.15 0.85 1 2.85 0.15 0 PVK ETL_I.M. 10.1016/j.electa cta.2019.06.102 18.30 1.10 21.80 77.30 16.20 1.05 20.90 74.40 Others 0 0 1 1 3 0 0 Al-acac3 B.M. 10.1039/C6EE0 1969B 17.32 1.19 18.69 78.21 15.72 1.16 17.69 76.56 PTAA 0.1 0.75 0.15 1 2 1 0 PMABr B.M. 10.1021/acs.jpc c.1c09739 16.80 1.17 18.10 79.00 15.72 1.16 17.69 76.56 PTAA 0.1 0.75 0.15 1 2 1 0 PEABr B.M. 10.1021/acs.jpc c.1c09739 22.25 1.15 23.36 82.90 19.38 1.09 23.24 76.40 NiOx 0.048 0.79 0.162 1.019 2.52 0.48 0 TPA-BA HTL_I.M. 10.1016/j.cej.20 22.136405 21.35 1.11 23.74 81.02 18.27 1.10 21.28 78.05 NiOx 0.047 0.804 0.149 1.034 2.577 0.423 0 PATMBF4 B.M. 10.1016/j.nanoe n.2021.105742 19.86 1.10 22.63 79.77 18.16 1.09 21.77 76.52 NiOx 0.048 0.81 0.143 1.027 2.579 0.421 0 Bu B.M. 10.1039/D0EE0 2043E 20.94 1.11 23.37 80.73 18.16 1.09 21.77 76.52 NiOx 0.048 0.81 0.143 1.027 2.579 0.421 0 Ea B.M. 10.1039/D0EE0 2043E 21.47 1.10 23.48 83.12 18.16 1.09 21.77 76.52 NiOx 0.048 0.81 0.143 1.027 2.579 0.421 0 PEa B.M. 10.1039/D0EE0 2043E 33 16.70 1.02 20.80 78.30 13.20 0.94 19.70 71.20 NiOx 0 0.85 0.15 1 2.55 0.45 0 PTAA HTL_I.M. 10.1021/acssusc hemeng.8b0407 8 21.01 1.11 23.74 79.75 18.17 1.07 21.95 77.37 NiOx 0.175 0.751 0.074 1.001 2.625 0.375 0 HEA B.M. 10.1016/j.nanoe n.2020.104639 20.15 1.08 22.68 81.96 17.53 1.02 22.19 77.67 Others 0 0 1 1 3 0 0 glucose B.M. 10.1039/D0TC0 0365D 19.39 1.13 21.41 80.20 16.10 1.09 19.31 76.50 NiOx 0 0 1 1.024 3 0 0 TFTPA ETL_I.M. 10.1021/acsami. 9b12961 21.30 1.15 22.70 81.40 21.00 1.11 23.30 80.70 NiOx 0 0.85 0.15 1 2.55 0.45 0 CF3- PEABr ETL_I.M. 10.34133/2021/ 9836752 20.45 1.14 22.35 80.25 18.08 1.05 22.04 78.12 PTAA 0 0 1 1.077 2.795 0 0.205 BTCC B.M. 10.1039/D0CC 02613A 19.84 1.13 22.50 77.72 17.90 1.06 21.87 77.34 NiOx 0.048 0.79 0.162 1.009 2.517 0.483 0 KBF4 HTL_I.M. 10.1021/acs.jpc c.2c00283 19.23 1.13 21.16 80.00 16.86 1.08 19.82 78.00 NiOx 0 0 1 1 3 0 0 PEI•HI HTL_I.M. 10.1016/j.apsus c.2021.149276 19.80 1.10 22.70 79.30 17.80 1.07 21.80 75.70 NiOx 0 0 1 1 3 0 0 BZACl B.M. 10.1039/d0qm0 0983k 19.75 1.08 23.32 78.60 15.82 1.09 19.63 74.30 Others 0.059 0.784 0.157 1.02 2.535 0.465 0 tropolone B.M. 10.1021/acsami. 9b21632 19.74 1.12 22.08 80.04 17.55 1.08 21.34 75.90 NiOx 0 0 1 1 3 0 0 MS-OC HTL_I.M. 10.1021/acsami. 0c18245 17.89 1.09 21.48 76.06 17.55 1.08 21.34 75.90 NiOx 0 0 1 1 3 0 0 MS-OA HTL_I.M. 10.1021/acsami. 0c18245 21.23 1.14 23.28 80.00 18.69 1.08 22.19 78.00 NiOx 0 0 1 0.848 2.831 0 0.169 KSCN HTL_I.M. 10.1002/smtd.2 02000478 19.02 1.09 22.37 78.00 18.69 1.08 22.19 78.00 NiOx 0 0 1 0.848 2.831 0 0.169 KAc HTL_I.M. 10.1002/smtd.2 02000478 34 20.21 1.12 22.37 81.26 17.54 1.05 21.29 78.09 NiOx 0 0 1 1 3 0 0 SaC-100 HTL_I.M. 10.1002/smtd.2 02000478 20.00 1.10 22.60 80.60 17.10 1.04 21.50 76.60 PTAA 0.062 0.782 0.156 1.016 2.536 0.464 0 PPS HTL_I.M. 10.1021/acsener gylett.1c00291 19.90 1.10 22.50 80.40 17.10 1.04 21.50 76.60 PTAA 0.062 0.782 0.156 1.016 2.536 0.464 0 PPS B.M. 10.1021/acsener gylett.1c00291 21.50 1.16 22.90 81.00 17.10 1.04 21.50 76.60 PTAA 0.062 0.782 0.156 1.016 2.536 0.464 0 PPS B.M.&HTL _I.M. 10.1021/acsener gylett.1c00291 18.39 1.11 22.45 73.94 15.90 1.05 21.11 71.74 NiOx 0 0 1 1 3 0 0 PS HTL_I.M. 10.1039/C9TA0 8084H 19.99 1.15 22.51 77.33 15.90 1.05 21.11 71.74 NiOx 0 0 1 1 3 0 0 PS HTL_I.M.& ETL_I.M. 10.1039/C9TA0 8084H 22.04 1.15 23.65 81.20 21.58 1.11 23.33 83.40 PTAA 0.05 0.792 0.158 1.009 2.544 0.456 0 PEAI HTL_I.M.& ETL_I.M. 10.1126/sciadv. abj793 23.07 1.15 23.68 85.00 21.58 1.11 23.33 83.40 PTAA 0.05 0.792 0.158 1.009 2.544 0.456 0 Cl-PEAI HTL_I.M.& ETL_I.M. 10.1126/sciadv. abj793 23.72 1.16 24.13 84.60 21.58 1.11 23.33 83.40 PTAA 0.05 0.792 0.158 1.009 2.544 0.456 0 F-PEAI HTL_I.M.& ETL_I.M. 10.1126/sciadv. abj793 22.70 1.16 23.50 83.20 20.40 1.09 23.90 78.60 Others 0.151 0.849 0 0.933 2.842 0 0.158 PEACl:Pb Cl2 B.M.&HTL _I.M. 10.1039/D1EE0 1508G 22.10 1.13 23.70 82.30 20.40 1.09 23.90 78.60 Others 0.151 0.849 0 0.933 2.842 0 0.158 PEACl HTL_I.M. 10.1039/D1EE0 1508G 20.80 1.11 23.50 79.30 20.40 1.09 23.90 78.60 Others 0.151 0.849 0 0.933 2.842 0 0.158 PEACl:Pb Cl2 B.M. 10.1039/D1EE0 1508G 20.10 1.12 23.70 75.90 17.20 1.09 22.20 70.60 PTAA 0 0 1 0.952 3 0 0 2FBT2ND I ETL_I.M. 10.1016/j.cej.20 20.125062 20.21 1.11 22.76 80.32 18.71 1.05 21.56 80.01 NiOx 0.175 0.751 0.074 1.001 2.625 0.375 0 TSPA HTL_I.M. 10.1016/j.apsus c.2021.149973 35 19.04 1.07 21.58 82.59 16.94 1.08 20.26 76.91 Others 0 0 1 1.077 2.795 0 0.205 PTAA HTL_I.M. 10.1039/C9TA0 8314F 20.40 1.11 23.01 78.23 16.80 1.04 21.22 68.75 NiOx 0 0 1 1 3 0 0 CBSA HTL_I.M. 10.1002/aenm.2 02103674 21.10 1.11 23.72 80.18 18.50 1.04 22.19 76.29 NiOx 0.06 0.849 0.091 1.263 2.809 0.191 0 CBSA HTL_I.M. 10.1002/aenm.2 02103674 19.49 1.08 22.09 81.00 17.90 1.08 21.34 77.00 PTAA 0 0 1 1 3 0 0 TODB ETL_I.M. 10.1016/j.cej.20 21.132426 20.49 1.15 21.82 82.00 18.66 1.10 21.78 78.00 Others 0.05 0.79 0.16 1 2.4 0.6 0 PMAI ETL_I.M. 10.1016/j.nanoe n.2020.105249 20.42 1.16 21.82 82.00 17.71 1.10 20.10 79.00 Others 0.05 0.79 0.16 1 2.4 0.6 0 PEAI ETL_I.M. 10.1016/j.nanoe n.2020.105249 21.37 1.13 24.07 78.30 20.72 1.09 23.86 79.50 PTAA 0.068 0.883 0.049 0.971 2.852 0.148 0 PMMA HTL_I.M. 10.1016/j.nanoe n.2021.106370 21.83 1.13 24.33 79.70 20.72 1.09 23.86 79.50 PTAA 0.068 0.883 0.049 0.971 2.852 0.148 0 PBAI ETL_I.M. 10.1016/j.nanoe n.2021.106370 23.33 1.16 24.56 82.10 20.72 1.09 23.86 79.50 PTAA 0.068 0.883 0.049 0.971 2.852 0.148 0 PMMA+P BAI HTL_I.M.& ETL_I.M. 10.1016/j.nanoe n.2021.106370 21.84 1.15 24.45 77.80 21.37 1.13 24.07 78.30 PTAA 0.068 0.883 0.049 0.971 2.852 0.148 0 PMAI ETL_I.M. 10.1016/j.nanoe n.2021.106370 22.01 1.16 24.58 77.40 21.37 1.13 24.07 78.30 PTAA 0.068 0.883 0.049 0.971 2.852 0.148 0 PEAI ETL_I.M. 10.1016/j.nanoe n.2021.106370 22.35 1.17 24.56 77.90 21.37 1.13 24.07 78.30 PTAA 0.068 0.883 0.049 0.971 2.852 0.148 0 PPAI ETL_I.M. 10.1016/j.nanoe n.2021.106370 18.48 1.07 21.99 78.70 17.11 1.05 21.70 74.90 NiOx 0 0 1 1 3 0 0 NP-BC HTL_I.M. 10.1021/acs.che mmater.9b0272 0 18.15 1.06 21.81 78.30 17.11 1.05 21.70 74.90 NiOx 0 0 1 1 3 0 0 PNP-BC HTL_I.M. 10.1021/acs.che mmater.9b0272 0 36 20.00 1.12 23.00 76.00 16.87 1.07 21.12 74.00 NiOx 0 0 1 1 3 0 0 [BZTAm] Cl ETL_I.M. 10.1002/solr.20 2000358 15.92 0.99 21.34 75.00 14.57 0.99 21.31 69.00 NiOx 0 0 1 1 3 0 0 TPI HTL_I.M. 10.1002/advs.2 01802163 16.56 0.99 22.01 76.00 14.57 0.99 21.31 69.00 NiOx 0 0 1 1 3 0 0 TPI- 2MEO HTL_I.M. 10.1002/advs.2 01802163 17.59 0.99 22.78 78.00 14.57 0.99 21.31 69.00 NiOx 0 0 1 1 3 0 0 TPI- 4MEO HTL_I.M. 10.1002/advs.2 01802163 18.42 0.98 23.31 81.00 14.57 0.99 21.31 69.00 NiOx 0 0 1 1 3 0 0 TPI- 6MEO HTL_I.M. 10.1002/advs.2 01802163 17.67 1.10 21.73 74.12 15.27 1.07 20.57 69.73 NiOx 0 0 1 1 3 0 0 PFBT HTL_I.M. 10.1016/j.jeche m.2019.11.004 18.39 1.11 22.45 73.94 16.39 1.05 21.12 73.76 NiOx 0 0 1 1 3 0 0 Polystyren e HTL_I.M. 10.1039/C9CC0 7517H 19.55 1.13 22.29 77.43 16.39 1.05 21.12 73.76 NiOx 0 0 1 1 3 0 0 Polystyren e ETL_I.M. 10.1039/C9CC0 7517H 19.54 1.12 22.25 78.19 16.39 1.05 21.12 73.76 NiOx 0 0 1 1 3 0 0 PMMA ETL_I.M. 10.1039/C9CC0 7517H 18.63 1.11 22.05 76.24 16.39 1.05 21.12 73.76 NiOx 0 0 1 1 3 0 0 PMMA HTL_I.M. 10.1039/C9CC0 7517H 20.68 1.08 23.45 80.91 18.22 1.06 21.28 80.66 Others 0 0.2 0.8 1.037 2.798 0 0.202 2-MI HTL_I.M. 10.1002/aelm.2 02000604 20.30 1.10 23.90 77.10 17.10 1.09 22.20 70.60 PTAA 0 0 1 1.05 3 0 0 2FBT2FP DI ETL_I.M. 10.1021/acssusc hemeng.0c0308 7 16.50 0.99 21.10 79.10 15.30 0.98 20.30 76.90 Others 0 0 1 1.077 2.795 0 0.205 PPDIDTT ETL_I.M. 10.1039/C6QM 00309E 20.12 1.12 21.70 82.78 16.43 1.04 20.73 76.19 NiOx 0 0 1 1 3 0 0 carnitine B.M. 10.1021/acsami. 0c22817 37 19.51 1.10 22.46 78.79 17.39 1.04 20.79 80.65 PTAA 0 0 1 1.005 3 0 0 PMMA HTL_I.M. 10.1021/acsaem .0c00561 20.17 1.08 23.92 78.40 14.53 1.01 21.01 68.70 NiOx 0 0 1 1 3 0 0 PHIA B.M. 10.1021/acs.che mmater.1c0143 6 21.47 1.11 23.50 82.00 19.31 1.10 22.13 79.27 PTAA 0 0 1 1 3 0 0 TOAB ETL_I.M. 10.1016/j.nanoe n.2021.105882 16.25 1.03 20.91 75.60 12.53 0.94 18.86 70.50 NiOx 0 0 1 1 3 0 0 PTZ-1 HTL_I.M. 10.1021/acsami. 9b09530 17.00 1.04 21.45 76.00 12.53 0.94 18.86 70.50 NiOx 0 0 1 1 3 0 0 PTZ-2 HTL_I.M. 10.1021/acsami. 9b09530 19.36 1.05 22.95 80.30 18.25 1.06 22.82 75.20 NiOx 0 0 1 1 3 0 0 KSCN HTL_I.M. 10.1039/D0QM 01064B 18.56 1.08 22.81 75.70 18.25 1.06 22.82 75.20 NiOx 0 0 1 1 3 0 0 KNO3 HTL_I.M. 10.1039/D0QM 01064B 20.82 1.13 22.94 80.40 20.25 1.10 22.73 81.00 NiOx 0.048 0.81 0.143 1.02 2.577 0.423 0 PEAI ETL_I.M. 10.1016/j.scib.2 021.02.029 18.04 1.12 21.08 76.41 15.87 1.05 21.32 70.60 NiOx 0 0 1 1 3 0 0 PEA-SCN B.M. 10.1021/acsaem .1c02113 20.40 1.07 23.70 80.40 17.60 1.04 21.00 80.40 NiOx 0 0 1 1 3 0 0 TPMA HTL_I.M. 10.1021/acsami. 2c01625 20.34 1.11 22.72 80.28 19.23 1.08 21.71 81.50 PTAA 0 0 1 1 3 0 0 PVP ETL_I.M. 10.1021/acsaem .1c04056 20.23 1.13 22.86 78.16 18.67 1.07 22.83 76.54 PTAA 0.048 0.794 0.159 0.952 2.508 0.492 0 M2 HTL_I.M. 10.1021/acsami. 1c21000 18.90 1.07 22.70 77.40 16.02 1.01 21.83 72.70 NiOx 0.1 0.9 0 1.05 3 0 0 PPS B.M. 10.1021/acssusc hemeng.0c0041 7 18.70 1.08 23.30 74.70 17.30 1.06 23.20 70.30 PTAA 0 0 1 1 3 0 0 PVC B.M. 10.1021/acs.jpcl ett.0c01776 38 18.40 1.11 21.70 76.30 15.50 1.07 19.60 74.20 NiOx 0 0 1 1.063 3 0 0 Br-BA HTL_I.M. 10.1002/cssc.20 1701262 17.60 1.10 21.70 76.30 15.50 1.07 19.60 74.20 NiOx 0 0 1 1.063 3 0 0 Cl-BA HTL_I.M. 10.1002/cssc.20 1701262 16.20 1.05 20.30 76.20 15.50 1.07 19.60 74.20 NiOx 0 0 1 1.063 3 0 0 H-BA HTL_I.M. 10.1002/cssc.20 1701262 19.64 1.11 21.90 80.80 18.80 1.08 21.90 79.30 PTAA 0.042 0.728 0.23 0.802 2.582 0.227 0.192 CA-1 ETL_I.M. 10.1021/acsami. 1c11683 20.30 1.12 22.10 82.00 18.80 1.08 21.90 79.30 PTAA 0.042 0.728 0.23 0.802 2.582 0.227 0.192 CA-2 ETL_I.M. 10.1021/acsami. 1c11683 21.40 1.16 22.28 83.07 18.80 1.08 21.90 79.30 PTAA 0.042 0.728 0.23 0.802 2.582 0.227 0.192 CA-3 ETL_I.M. 10.1021/acsami. 1c11683 20.20 1.12 23.50 76.30 18.20 1.10 22.70 73.20 PTAA 0 0 1 0.952 3 0 0 IDTT2NP I ETL_I.M. 10.1021/acsami. 0c11620 20.89 1.13 23.32 79.37 19.13 1.08 23.01 77.29 NiOx 0 0 1 1 3 0 0 LS1 HTL_I.M. 10.1021/acsami. 1c22396 19.46 1.08 23.42 77.82 17.59 1.05 22.98 75.62 Others 0 0 1 1 3 0 0 PEABr HTL_I.M. 10.1016/j.solen er.2020.05.042 20.20 1.11 23.52 77.40 18.70 1.09 22.59 76.20 PTAA 0.051 0.807 0.142 1.022 2.719 0.281 0 Y6 ETL_I.M. 10.1016/j.joule. 2020.06.007 20.02 1.09 22.23 82.61 17.46 1.06 21.45 76.82 PTAA 0 0 1 1.08 3 0 0 P4VP ETL_I.M. 10.1039/C9TC0 6578D 21.88 1.13 23.10 83.81 19.16 1.08 22.26 79.70 PTAA 0 0 1 1.08 3 0 0 capsaicin B.M. 10.1016/j.joule. 2020.12.009 20.15 1.09 23.19 79.73 18.10 1.07 21.55 78.51 PTAA 0 0 1 1 3 0 0 ITCC ETL_I.M. 10.1002/solr.20 2100864 19.24 1.07 22.79 78.92 18.10 1.07 21.55 78.51 PTAA 0 0 1 1 3 0 0 IT-M ETL_I.M. 10.1002/solr.20 2100864 39 21.21 1.15 23.25 79.33 18.37 1.10 22.06 75.70 PTAA 0 0.85 0.15 1 2.55 0.45 0 ITCC ETL_I.M. 10.1002/solr.20 2100864 17.63 1.08 22.03 74.11 15.49 1.02 21.46 70.76 NiOx 0.037 0.886 0.077 0.963 2.762 0.238 0 PSICx HTL_I.M. 10.1016/j.dyepi g.2021.109837 16.90 1.06 22.08 72.18 15.49 1.02 21.46 70.76 NiOx 0.037 0.886 0.077 0.963 2.762 0.238 0 PSIC HTL_I.M. 10.1016/j.dyepi g.2021.109837 15.04 0.99 20.05 77.00 13.13 0.91 18.97 76.00 Others 0 0 1 1 3 0 0 PTMA- BP HTL_I.M. 10.1039/C7TA0 7732G 20.32 1.11 23.58 77.64 18.25 1.07 22.96 74.55 PTAA 0.039 0.817 0.144 1.034 2.555 0.445 0 4-ABSA B.M. 10.1021/acsami. 1c04601 20.49 1.08 23.08 82.42 18.36 1.03 22.33 79.88 NiOx 0 0 1 1 3 0 0 ETT ETL_I.M. 10.1016/j.cej.20 20.127579 18.13 1.11 21.36 76.16 16.31 1.07 20.33 74.86 NiOx 0 0 1 0.998 2.819 0 0.181 3-PA HTL_I.M. 10.1021/acsaem .1c01017 17.66 1.12 20.95 75.30 16.31 1.07 20.33 74.86 NiOx 0 0 1 0.998 2.819 0 0.181 4-PA HTL_I.M. 10.1021/acsaem .1c01017 16.34 1.09 19.91 75.40 16.31 1.07 20.33 74.86 NiOx 0 0 1 0.998 2.819 0 0.181 2-PA HTL_I.M. 10.1021/acsaem .1c01017 20.54 1.11 22.51 82.20 18.09 1.08 21.31 78.60 NiOx 0 0 1 1.024 3 0 0 GuaBF4 ETL_I.M. 10.1016/j.solma t.2022.111682 21.01 1.12 22.76 82.34 19.02 1.08 22.31 78.89 PTAA 0 0 1 1 3 0 0 HTAB HTL_I.M. 10.1021/acsami. 1c22020 17.29 1.07 20.84 71.33 14.82 0.99 20.05 69.15 Others 0 0 1 1 3 0 0 GMS HTL_I.M. 10.1021/acsaem .0c03249 23.37 1.17 24.92 80.17 20.76 1.06 24.93 78.57 PTAA 0.035 0.636 0.329 0.669 2.492 0.129 0.38 PI ETL_I.M. 10.1021/jacs.0c 09845 21.98 1.13 24.61 79.03 20.76 1.06 24.93 78.57 PTAA 0.035 0.636 0.329 0.669 2.492 0.129 0.38 PDI ETL_I.M. 10.1021/jacs.0c 09845 40 21.00 1.13 22.91 81.00 19.08 1.08 21.65 82.00 PTAA 0.04 0.8 0.16 1.04 2.532 0.468 0 IT-DOH B.M. 10.1039/D1EE0 2248B 19.85 1.10 22.20 81.00 19.08 1.08 21.65 82.00 PTAA 0.04 0.8 0.16 1.04 2.532 0.468 0 ITIC B.M. 10.1039/D1EE0 2248B 22.09 1.12 24.97 79.00 19.98 1.09 23.20 79.00 PTAA 0.048 0.952 0 0.952 3 0 0 IT-DOH B.M. 10.1039/D1EE0 2248B 20.89 1.10 24.04 79.00 19.98 1.09 23.20 79.00 PTAA 0.048 0.952 0 0.952 3 0 0 ITIC B.M. 10.1039/D1EE0 2248B 19.50 1.11 21.90 80.00 18.50 1.08 22.50 76.00 PTAA 0 0 1 1 3 0 0 FEAI B.M. 10.1038/s41467 -020-20272-3 20.39 1.20 20.72 81.73 19.09 1.15 20.55 81.01 NiOx 0.21 0.743 0.048 0.955 2.513 0.34 0.147 TFBA B.M. 10.1002/inf2.12 307 21.30 1.13 23.80 79.20 18.50 1.07 23.40 73.70 NiOx 0 0 1 1 2.909 0 0.091 SFX-Py- PDI2 ETL_I.M. 10.1016/j.cej.20 22.135410 21.28 1.10 23.15 83.58 17.87 1.07 21.23 78.68 NiOx 0 0 1 1 3 0 0 FPA B.M. 10.1002/solr.20 2101101 20.15 1.10 23.53 77.86 17.91 1.06 21.57 78.34 Others 0 0 1 1 3 0 0 ATPS HTL_I.M. 10.1002/cnma.2 02200041 21.76 1.18 22.56 81.76 18.72 1.08 22.03 78.68 NiOx 0.07 0.772 0.158 0.93 2.502 0.498 0 ABF B.M. 10.1002/adfm.2 02200431 20.11 1.21 20.98 79.45 17.85 1.13 20.21 78.14 NiOx 0.07 0.698 0.233 0.93 2.268 0.732 0 ABF B.M. 10.1002/adfm.2 02200431 21.26 1.16 23.02 79.74 19.54 1.15 22.25 76.04 PTAA 0 0 1 1 2.8 0 0.2 HEC B.M. 10.1002/eem2.1 2426 22.98 1.16 24.62 80.38 21.23 1.15 24.01 76.75 PTAA 0.05 0.85 0.1 1 2.8 0 0.2 HEC B.M. 10.1002/eem2.1 2426 22.65 1.18 24.72 77.52 21.02 1.18 24.25 73.52 PTAA 0 1 0 1 2.8 0 0.2 HEC B.M. 10.1002/eem2.1 2426 41 18.43 1.09 21.50 78.60 14.53 1.05 19.15 72.50 NiOx 0 0 1 1 3 0 0 MAD HTL_I.M. 10.1002/cnma.2 02200091 20.90 1.12 22.81 81.90 18.00 1.05 21.96 78.00 Others 0.15 0.85 0 1 2.85 0.15 0 C343 B.M. 10.1016/j.nanoe n.2022.106935 20.27 1.09 23.12 80.15 18.75 1.03 22.35 81.29 NiOx 0 0 1 1 3 0 0 Cl-HOBT B.M. 10.1016/j.jeche m.2021.06.029 18.96 1.12 22.28 76.00 15.45 1.09 22.50 63.00 NiOx 0 0.677 0.323 0.806 2.481 0.222 0.296 PEAI ETL_I.M. 10.1002/solr.20 2101082 20.52 1.14 23.38 77.00 18.96 1.12 22.28 76.00 NiOx 0 0.677 0.323 0.806 2.481 0.222 0.296 OAm B.M. 10.1002/solr.20 2101082 19.40 1.09 23.13 76.78 18.92 1.07 22.96 76.74 PTAA 0 0 1 1 3 0 0 AIBA ETL_I.M. 10.1021/acsami. 1c22454 22.23 1.15 23.71 81.31 20.08 1.12 22.85 78.76 PTAA 0.029 0.689 0.282 0.915 2.583 0.173 0.244 ZC3 B.M. 10.1021/jacsau. 2c00160 21.77 1.15 23.66 80.29 20.08 1.12 22.85 78.76 PTAA 0.029 0.689 0.282 0.915 2.583 0.173 0.244 ZC4 B.M. 10.1021/jacsau. 2c00160 22.75 1.17 23.58 82.80 20.08 1.12 22.85 78.76 PTAA 0.029 0.689 0.282 0.915 2.583 0.173 0.244 MeZC3 B.M. 10.1021/jacsau. 2c00160 23.15 1.16 23.87 83.43 20.08 1.12 22.85 78.76 PTAA 0.029 0.689 0.282 0.915 2.583 0.173 0.244 OMeZC3 B.M. 10.1021/jacsau. 2c00160 20.80 1.13 22.94 80.40 19.10 1.08 22.40 78.80 Others 0.05 0.798 0.152 0.998 2.609 0.388 0.002 OLAI ETL_I.M. 10.1126/science .abm5784 20.60 1.15 22.62 79.00 19.00 1.08 22.40 78.80 Others 0 0 1 1 3 0 0 OLAI ETL_I.M. 10.1126/science .abm5784 23.60 1.15 24.13 84.20 21.70 1.12 23.39 82.73 Others 0 0.2 0.8 1 3 0 0 OLAI ETL_I.M. 10.1126/science .abm5784 24.30 1.19 25.13 80.15 22.30 1.13 24.36 80.40 Others 0.031 0.898 0.071 1.029 2.996 0 0.004 OLAI ETL_I.M. 10.1126/science .abm5784 42 17.20 1.11 20.10 80.00 11.90 1.00 17.30 70.00 NiOx 0 0 1 1.077 2.795 0 0.205 MeO- 2PACz HTL_I.M. 10.1021/acsome ga.2c00509 19.48 1.11 21.67 81.00 18.32 1.09 21.01 80.00 NiOx 0 0 1 1 3 0 0 SA B.M. 10.1016/j.apsus c.2022.152670 20.30 1.11 22.30 82.00 18.32 1.09 21.01 80.00 NiOx 0 0 1 1 3 0 0 PTA B.M. 10.1016/j.apsus c.2022.152670 20.87 1.12 22.73 82.00 18.32 1.09 21.01 80.00 NiOx 0 0 1 1 3 0 0 BPDA B.M. 10.1016/j.apsus c.2022.152670 20.82 1.13 22.94 80.40 20.25 1.10 22.73 81.00 NiOx 0.048 0.81 0.143 1.02 2.577 0.423 0 PEAI ETL_I.M. 10.1016/j.scib.2 021.02.029 22.00 1.16 23.31 81.20 20.82 1.13 22.94 80.40 NiOx 0.048 0.81 0.143 1.02 2.577 0.423 0 Cl6SubPc ETL_I.M. 10.1016/j.scib.2 021.02.029 20.31 1.19 20.94 81.80 17.97 1.08 20.85 79.30 PTAA 0.2 0.8 0 1 2.4 0.6 0 TEACl ETL_I.M. 10.1016/j.nanoe n.2021.106608 18.90 1.09 21.80 79.70 17.50 1.08 20.50 78.20 NiOx 0 0 1 1 3 0 0 C4 ETL_I.M. 10.1016/j.dyepi g.2021.109385 18.70 1.09 21.30 79.90 17.50 1.08 20.50 78.20 NiOx 0 0 1 1 3 0 0 C3A ETL_I.M. 10.1016/j.dyepi g.2021.109385 19.70 1.10 22.30 80.00 17.50 1.08 20.50 78.20 NiOx 0 0 1 1 3 0 0 C3AI ETL_I.M. 10.1016/j.dyepi g.2021.109385 18.83 1.11 21.15 79.90 17.79 1.11 21.23 76.08 NiOx 0 0 1 1 3 0 0 CL-2 HTL_I.M. 10.1039/D0QM 00728E 19.67 1.12 21.76 80.72 17.79 1.11 21.23 76.08 NiOx 0 0 1 1 3 0 0 CL-3 HTL_I.M. 10.1039/D0QM 00728E 21.65 1.12 23.40 82.60 20.65 1.08 23.50 81.05 PTAA 0 0.2 0.8 1 3 0 0 PEAI HTL_I.M. 10.1002/adfm.2 02104036 21.69 1.12 23.39 82.73 20.65 1.08 23.50 81.05 PTAA 0 0.2 0.8 1 3 0 0 4-AEPI HTL_I.M. 10.1002/adfm.2 02104036 43 21.63 1.12 23.46 82.29 20.65 1.08 23.50 81.05 NiOx 0 0.2 0.8 1 3 0 0 PDMAI2 HTL_I.M. 10.1002/adfm.2 02104036 20.21 1.14 22.42 79.10 17.17 1.07 21.29 75.30 NiOx 0 0.1 0.9 1 2.948 0 0.052 PN4N HTL_I.M. 10.1002/admi.2 02100920 18.20 1.03 23.00 76.50 18.10 1.06 24.10 70.70 NiOx 0 0 1 1 3 0 0 EMIMCl ETL_I.M. 10.1016/j.jcis.2 022.04.117 20.00 1.11 23.70 76.00 18.10 1.06 24.10 70.70 NiOx 0 0 1 1 3 0 0 EMIMBr ETL_I.M. 10.1016/j.jcis.2 022.04.117 19.00 1.09 23.60 74.00 18.10 1.06 24.10 70.70 NiOx 0 0 1 1 3 0 0 EMIMI ETL_I.M. 10.1016/j.jcis.2 022.04.117 19.42 1.16 21.30 78.00 18.11 1.17 20.10 77.00 PTAA 0.15 0.65 0.2 1.02 2.4 0.6 0 KAc HTL_I.M. 10.1002/solr.20 2000793 20.06 1.13 22.30 80.00 19.08 1.14 21.10 79.00 PTAA 0.15 0.65 0.2 1.02 2.7 0.3 0 KAc HTL_I.M. 10.1002/solr.20 2000793 20.16 1.12 21.98 82.01 17.83 1.06 21.32 78.58 NiOx 0.055 0.803 0.142 1.024 2.581 0.419 0 BDT-POZ HTL_I.M. 10.1016/j.jeche m.2021.11.029 15.47 1.06 19.84 73.60 14.14 1.02 18.51 74.90 PTAA 0.05 0.792 0.158 1.029 2.534 0.466 0 DMBG HTL_I.M. 10.1016/j.orgel. 2022.106525 17.47 1.09 20.62 77.70 17.15 1.08 20.54 77.32 PTAA 0.037 0.608 0.356 1.024 1.95 1.05 0 MPS2- TMA HTL_I.M. 10.1002/adma.2 02002333 18.59 1.11 20.36 78.41 17.15 1.08 20.54 77.32 PTAA 0.037 0.608 0.356 1.024 1.95 1.05 0 MPS4- TMA HTL_I.M. 10.1002/adma.2 02002333 18.94 1.12 21.35 79.23 17.15 1.08 20.54 77.32 PTAA 0.037 0.608 0.356 1.024 1.95 1.05 0 MPS6- TMA HTL_I.M. 10.1002/adma.2 该数据中第一个值为标签值。其余为特征值。请给我它预测值与真实值的散点图
05-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值