IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python3 windows下的几乎万能爬虫方法 -> 正文阅读

[人工智能]python3 windows下的几乎万能爬虫方法

解决selenium下被反扒的情况

# -*- encoding:utf-8 -*-
import time

import requests
from selenium.webdriver.common.by import By


def get_data(cookies):
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36",
        # "Host": "www.iwencai.com",
        # 'Upgrade-Insecure-Requests': '1',
        'Accept-Language': 'zh-CN,zh;q=0.9',
        # 'referer': 'https://www.iwencai.com/',
        "Cookie": f"cid={cookies['cid']}; "
                  f"ComputerID={cookies['ComputerID']}; "
                  "ver_mark=c; "
                  "other_uid=Ths_iwencai_Xuangu_9fnth9iibkd8zrtya1yj4ll48wx683s8; "
                  f"ta_random_userid={cookies['ta_random_userid']}; "
                  "WafStatus=0; "
                  f"PHPSESSID={cookies['PHPSESSID']}; "
                  f"v={cookies['v']}",
        "hexin-v": f"{cookies['v']}"
    }
    print("开始爬取数据".center(30,"*"))
    print("请求头为:",headers)
    url = 'http://www.iwencai.com/stockpick/load-data?typed=0&preParams=&ts=1&f=1&qs=result_original&selfsectsn=&querytype=stock&searchfilter=&tid=stockpick&' \
          'w=股价下跌,超大单净流入大于1000万元,大单净流入大于1000万元,市值小于400亿,非ST,非创业板,非科创板,股价大于10元'
    res = requests.get(url, headers=headers)
    print("res为:", res)
    if res.status_code != 200:
        print(res.text)
        return
    result_data = res.json()
    print('爬取数据的结果为:',result_data)
    return result_data['data']['result']['result']


def handle_data(result_data):
    """
    处理数据
    :return:
    """

    result_list_data = []
    for one_data in result_data:
        result_dict_data = {}
        # 股票代码
        result_dict_data['stock_code'] = one_data[0]
        # 股票名称
        result_dict_data['stock_name'] = one_data[1]
        # 涨跌幅
        result_dict_data['stock_upanddown'] = one_data[2]
        # 超大单流入
        result_dict_data['stock_extea_large_flow'] = one_data[3]
        # 大单流入
        result_dict_data['stock_large_flow'] = one_data[4]

        # 股票市值
        result_dict_data['stock_market_value'] = one_data[5]

        # 股票价格
        result_dict_data['stock_price'] = one_data[7]

        result_list_data.append(result_dict_data)
    print("处理后的结果数据为:",result_list_data)
    return result_list_data



def handle_business(cookies):
    """
    处理业务
    :return:
    """
    # 爬取数据
    result_data = get_data(cookies)
    if not result_data:
        return
    # 处理数据为字典的列表
    result_list_data = handle_data(result_data)
    # print(result_list_data)
    # 业务统计,并发送邮件
    for one_data in result_list_data:
        # 涨跌幅小于5%的,市值小于200亿,特大单净流入大于2000万的
        if abs(float(one_data['stock_upanddown'])) > 2 and float(one_data['stock_market_value']) < 20000000000 and float(one_data['stock_extea_large_flow']) >= 20000000:
            print('满足跌幅在5%以下的,市值小于200亿,特大单净流入大于2000万的的股票为:',one_data)
            # 发送邮件通知


from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import os,subprocess,threading


def open_browser():
    subprocess.call(
        'C:\Program Files\Google\Chrome\Application\chrome.exe  --remote-debugging-port=9222 --user-data-dir="C:selenumAutomationProfile"',
        timeout=15)
    print("打开浏览器结束了")

th = threading.Thread(target=open_browser)
th.start()

options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

# 不加载图片
# options.add_argument('blink-settings=imagesEnabled=false')

# 不显示图形界面
# options.add_argument('--headless')

driver = webdriver.Chrome(executable_path=r'D:\Python\Python38\chromedriver.exe',options=options)

driver.get('https://www.iwencai.com')
#
# WebDriverWait(driver,timeout=10).until(EC.presence_of_element_located((By.ID,"auto")))
# driver.find_element(By.ID,"auto").send_keys('跌幅在5%以下的,市值小于200亿,特大单净流入大于2000万')
# driver.find_element(By.ID,'qs-enter').click()
cookies = driver.get_cookies()
print(cookies)
res_cookies = {}
for one_cookie in cookies:
    if one_cookie['name'] == 'v':
        res_cookies['v'] = one_cookie['value']
    elif one_cookie['name'] == 'ta_random_userid':
        res_cookies['ta_random_userid'] = one_cookie['value']
    elif one_cookie['name'] == 'cid':
        res_cookies['cid'] = one_cookie['value']
    elif one_cookie['name'] == 'ComputerID':
        res_cookies['ComputerID'] = one_cookie['value']
    elif one_cookie['name'] == 'PHPSESSID':
        res_cookies['PHPSESSID'] = one_cookie['value']
time.sleep(3)
handle_business(res_cookies)
driver.close()
print("关闭页签")

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:39:40  更:2022-05-09 12:40:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:36:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码