selenium 淘宝爬虫(需要扫码登录一下)

2023-10-30

from selenium import webdriver
import time
import re

def gethtml(url):
    '''定义函数获取html源代码'''
    '''由于淘宝是动态网页无法用requests库获取所以使用selenium模拟器'''
    driver=webdriver.Chrome()#构造一个Chrom浏览器对象用来控制浏览器
    driver.get(url)#根据具体的url访问网页
    # 第一种滑块验证,人工操作
    i3 = driver.find_element_by_css_selector('#login > div.corner-icon-view.view-type-qrcode > i')
    i3.click()
    time.sleep(15)  # 等待15秒,用来扫码(人工操作)
    '''将进度条拉到页面最后'''
    try:
        js = 'var q=document.documentElement.scrollTop=10000'
        driver.execute_script(js)  # execute_script()函数运行js下滑脚本
    except:
        print('出现错误')
    html = driver.page_source #获取网页源代码
    driver.close()#关闭浏览器
    print('关闭浏览器')
    #print(html)
    return html

def xieru(html):
    with open("C:\\Users\86666\Desktop\python文件处理\钓鱼.html",'at',encoding='utf-8')as wenjian:
        wenjian.write(html)
        print('写入成功')
    with open('C:\\Users\86666\Desktop\python文件处理\钓鱼.html','rt',encoding='utf-8')as j:
        html2=j.read()
    return html2


def tiqu(list,html2):
    '''从获得到的网页中提取需要的信息'''
    try:
        '''提取商品名称'''
        zhengze=re.compile(r'"raw_title":".{0,40}",')#用re.compile()函数将正则表达式的字符串转化(编译)为正则表达式对象用于多次操作
        '''获得付款人数'''
        zhengze1=re.compile(r'"view_sales":".{0,30}",')
        l1=zhengze.findall(html2)
        l2=zhengze1.findall(html2)
    except:
        print('出现错误')
    if len(l1)==len(l2):
        for i in range(len(l1)):
            u=eval(l1[i].split(':')[1])
            u2=eval(l2[i].split(':')[1])
            list.append([u,u2])
    print('打印列表')
    return list

def print1(list2):
    '''按规则打印'''
    print('{0:<35}\t\t\t\t\t{1:<12}'.format('付款人数','产品名称'),chr(12288))
    for i in range(len(list2)):
        print('{0:<35}\t\t\t\t\t{1:<12}'.format(str(list2[i][0][0]),str(list2[i][1][0])),chr(12288))





def main():
    list=[]
    url=('https://s.taobao.com/search?q=%E9%B1%BC%E7%AB%BF&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306')
    html=gethtml(url)
    xieru(html)
    html2=xieru(html)
    list2=tiqu(list,html2)
    print(list2)
    print1(list2)


main()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

selenium 淘宝爬虫(需要扫码登录一下) 的相关文章

  • HCIP笔记

    HCIA复习 抽象语言 编码编码 二进制 二进制 电信号处理电信号 OSI参考模型 OSI RM 应用层 表示层 会话层 传输层 端口号 0 65535 1 1023是注明端口网络层 IP地址 数据链路层 物理层 ARP协议 正向ARP 通
  • 手把手教你写垃圾分类系统

    垃圾分类是目前社会的一个热点 制作垃圾分类只要找到合适的数据集 垃圾分类的模型构建并不难 这里收集了一份关于垃圾分类的数据集 一共有四个大类和245个小类 大类分别是厨余垃圾 可回收物 其他垃圾和有害垃圾 小类主要是垃圾的具体类别 果皮 纸
  • 2021-10-24

    2021 10 24
  • Linux系统常用命令

    文章目录 一 Linux目录介绍 二 Linux命令 三 Linux常用系统工作命令 1 输出字符串或者环境变量取值后的值 echo 2 显示或者设置系统时间与日期 date 3 设置系统时间 timedatectl 4 系统重启 rebo
  • C++模板-泛型函数与泛型类

    泛型 在调用函数或使用该类时才指定特定的类型 可以避免重复写类似功能代码 那C 语言如何定义泛型呢 Author W 泛型 模板 只有在调用或使用该函数或类时 才确定类型 1 泛型函数 2 泛型类 引入标准输入输出流 include
  • C++异常详细介绍

    目录 前言 一 C 异常概念 二 异常的抛出和匹配规则 三 异常的重新抛出 四 异常安全问题 五 异常规范说明 六 自定义异常体系 七 C 标准库的异常体系 八 异常优缺点 前言 在C语言中处理错误的方式和缺陷有 返回错误码 缺陷 1 错误
  • 硬件系统工程师宝典(22)-----电容、电感的特性,你都知道吗?

    各位同学大家好 欢迎继续做客电子工程学习圈 今天我们继续来讲这本书 硬件系统工程师宝典 上篇我们说到做电阻选型时要考虑阻值 功率 精度和封装大小 上下拉电阻除了给引脚一个稳定的电平 可以提高电压准位 增加输出功率以及满足阻抗匹配的要求 今天
  • buuctf(入门) Have Fun

    首先我们打开题目链接 我们看到一只猫 什么也没有 直接F12查看原代码 发现中间绿色代码的意思大概是定义一个数cat赋予它值cat值cat使用get函数请求的 如果数cat dog的话 则输出syc cat cat cat 所以我们只需要在
  • 867. 转置矩阵

    class Solution public vector
  • 安装postgresql以及乱码问题

    一 进入官网 按照自己的电脑型号选择合适的安装包 点下载那个图标的时候没有反应就多点几次 就可以弹出下载窗口了 二 打开下载好的安装包进行安装 可能出现乱码问题 一般出现这个问题大部分是因为你的系统用户名有中文字符 你需要把它改掉才行 之前
  • 区块链数据结构概述(MT、MPT)

    区块链数据结构概述 MT MPT Ethereum Foundation Blog MT Hash List Merkle Tree Merkle Tree的主要特点 Merkle Tree的相关操作 MPT Merkle Patricia
  • 请教Ado.Net按文本读取CSV/Txt文件时,如何禁止将内容转换成数字

    例如现有文件内容如下 文件内容开始 Column1 Column200001234 00005678 文件内容结束 读得的结果是 lt 1234 5678 gt 即它 智能 地认为我里面的内容为数字 而我希望它把内容当文本来处理 期望的结果
  • 重构总结

    之前就听说 重构 改善既有代码的设计 这本书很经典 一直没有机会拜读 书中讲的都是很实用的重构小技术 很多人肯定都用过 看完之后还需要在工作中多多使用 下面总结了一下这本书的知识点 方便日后查看
  • linux进程间信号量通信IPC(sem)

    一 信号量 信号量是一种用于提供不同进程间或一个从给定进程的不同线程间同步手段的原语 1 1 Posix信号量的选择 1 单个进程的各个线程共享 可以使用基于内存的信号量 2 彼此无亲缘关系的不同进程需使用信号量时 通常使用有名信号量 1
  • STM32无线网络监控传感器数据

    介绍 在此项目中 我们将首先创建一个无线传感器节点 传感器节点由四个基本组件组成 例如传感单元 处理单元 收发器单元和电源单元 传感单元可以由任何传感器组成 我正在使用BME280气压传感器 处理单元是STM32F103C微控制器 收发器单
  • Python之格式化字符串小练

    格式化字符串 a 3 b 5 print str a str b str a b 对于字符串的拼接显示 称为格式化字符串 有两种方案 的方式 print s s s a b a b s表示字符串 d表示整数类型 f表示浮点型的整数 info
  • python列表的三种遍历方法(for循环,索引,下标)

    列表是python中使用频率非常高的数据类型 用方括号 定义 接下来介绍遍历列表常用的三种方法 1 直接遍历 list1 1 24 34 44 533 5 219 for item in list1 直接遍历 print item 2 按索
  • Linux内核之ICMPv6详解

    要知道什么是ICMPv6协议 我们首先要知道什么是ICMP ICMP是一种面向无连接的协议 负责传递可能需要注意的差错和控制报文 差错指示通信网络是否存在错误 如目的主机无法到达 IP路由器无法正常传输数据包等 注意 路由器缓冲区溢出导致的
  • 执行git status命令时出现了“fatal: detected dubious ownership in repository“

    这个错误提示表示发现了版本库中存在可疑的所有权问题 即指定的目录 E take Class Rust MyRust 的所有者与当前用户不匹配 为了解决这个问题 Git提供了一个添加目录异常规则的方法 你可以按照下面的步骤进行操作 1 打开命
  • 前端基础知识之SVG&Canvas之间的区别与简单应用

    tip canvas 常用API fillRect x y width height 实心矩形 strokeRect x y width height 空心矩形 fillText Hello world 200 200 实心文字 strok

随机推荐

  • 8. R语言绘图系统介绍、高级绘图与低级绘图、【绘图参数】、绘图函数包

    b站课程视频链接 https www bilibili com video BV19x411X7C6 p 1 腾讯课堂 最新 但是要花钱 我花99 元买了 感觉讲的没问题 就是知识点结构有点乱 有点废话 https ke qq com co
  • HTML 个人简历源码

  • 使用HAL库开发STM32:系统时间基础及进阶使用

    文章目录 目的 基础使用 进阶使用 总结 目的 HAL库默认提供了系统时间 系统时间默认情况下由SysTick定时器计数产生 系统时间一方面用于HAL库自身调用 另一方面用户也可以使用 为开发带来便利 本文提到的相关使用主要应用于未使用OS
  • 5G赋能智慧城市白皮书 附下载地址

    随着经济社会的快速发展和加速转型 传统城市管理模式的局限性日益显现 随着全球城市化 进程的加快 为了应对人口 资源 环境等对城市发展的挑战 全球各国都以 智慧城市 建 设作为全新的城市发展理念和实践路径 而传统智慧城市建设中 由于细分智慧应
  • 应用层——电子邮件(SMTP、POP3、IMAP)

    目录 1 电子邮件系统及组成结构 1 1 电子邮件 1 2 电子邮件系统的组件 2 SMTP 邮件发送协议 2 1 SMTP的特征 2 2 SMTP的基本操作 2 3 SMTP协议的基本流程 2 4 SMTP交互与应答 2 5 SMTP与H
  • 预测性维护

    1 预测性维护 1 1 介绍 预见性维护 PdM 承诺在工厂车间达到前所未有的效率和安全水平 目前已建立的系统和流程的最佳实践 机器停机是生产线上最大的挑战之一 目前的MRO 维护 维修 操作 方法远未达到最佳生产水平 通过预测性维护 一旦
  • kettle对接hive

    kettle没有自带hive的驱动 如果在界面上直接选Hadoop Hive 2 3会报找不到驱动的错误 按照网上的解决方案修改了plugins文件夹里的配置文件后仍然无法解决 还是需要把驱动jar放入kettle里才可以 docker c
  • C++:多线程的正确打开姿势

    目的 本例简介c 11中thread库如何创建与停止线程 实现 如下的实例中 通过ThreadWrapper start 方法启动线程 通过ThreadWrapper stop 方法停止线程 线程的主体函数为Thread run 方法 in
  • Servlet 基础知识及操作

    一 什么是servlet Servlet Server Applet 是Java Servlet的简称 称为小服务程序或服务连接器 用Java编写的服务器端程序 具有独立于平台和协议的特性 主要功能在于交互式地浏览和生成数据 生成动态Web
  • [POI2008]CLO-Toll

    题目链接 本题有个小点需要注意 如果说它是多个相互不连通的图 也有可能形成一个可行解 多个环嘛 然后剩下的 就是dfs去跑 如果跑出了返祖边 那么这个返祖边抵达的点 将改变原来的方向 剩下的就都是正方向 dfs直接跑就是了 include
  • 【回溯法】n皇后问题并输出每种解的情况 C语言版

    问题描述 在n n的方格棋盘上 放置n个皇后 要求 个皇后两两不在一行 不在一列 不在同一对角线上 PS 行不用检测 因为皇后本身就是一行一行往下放的 并且一行只能放一个 所以当放好一个皇后后 只需检测列及对角线的位置有无皇后 如下图这些位
  • 报告论文:手写数字识别

    手写数字识别 简单手写数字识别系统 我们对VC比较熟悉 采用VC开发 数字的类别只有十种 笔划又简单 其识别问题似乎不是很困难 但事实上 一些测试结果表明 数字的正确识别率并不如印刷体汉字识别正确率高 甚至也不如联机手写体汉字识别率高 而只
  • 服务器的线路有很多

    服务器的线路有很多 大致的分为 CN2 CIA CDIA GIA等 首先简单介绍一下什么是IPLC专线 IPLC专线是国际私用出租线路 本质就是点对点内网 网络的入口在国内 所以不会受 国际链路影响 也不用走国家防火墙 IP地址可用率高 不
  • 怎么在外部类外访问内部类

    在外部类外访问内部类 Wai Nei wn new Wai new Nei 上式相当于 Wai w new Wai Wai Nei wn w new Nei package a class Wai class Nei int i 5 int
  • 【自然语言处理】利用TextRank算法提取关键词

    利用TextRank提取关键词 TextRank 是一种基于 PageRank 的算法 常用于关键词提取和文本摘要 在本文中 我将通过一个关键字提取示例帮助您了解 TextRank 如何工作 并展示 Python 的实现 使用 TextRa
  • MySQL按逗号拆分列为多行

    图一 图二 按逗号拆分列为多行 把 图一 的展示效果转换成 图二 的展示效果 1 创建用户表 sys user CREATE TABLE sys user id BIGINT NOT NULL auto increment COMMENT
  • 工厂方法模式与抽象工厂模式

    工厂方法模式与抽象工厂模式 一 工厂方法模式 Factory Method 解决的问题 案例 实现步骤 代码示例 比较冗余 只是看设计模式的思想 根据案例分析工厂方法模式 JDK源码中的工厂方法模式 二 抽象工厂模式 Abstract Fa
  • (附源码)vue3.0+.NET6实现聊天室(实时聊天SignalR)

    参考文章 搭建文章 gitte源码 在线体验 可以注册两个号来测试 演示图 一 整体介绍 介绍SignalR一种通讯模型Hub 中心模型 或者叫集线器模型 调用这个模型写好的方法 去发送消息 内容有 Hub模型的方法介绍 服务器端代码介绍
  • Webpack详解

    零 文章目录 Webpack详解 1 webpack基本概念 1 webpack是什么 静态模块打包工具 官网 https webpack docschina org 官网文档 https webpack docschina org con
  • selenium 淘宝爬虫(需要扫码登录一下)

    from selenium import webdriver import time import re def gethtml url 定义函数获取html源代码 由于淘宝是动态网页无法用requests库获取所以使用selenium模拟