(一)PYTHON的安装(已安装,可跳过此步骤)

1、PYTHON下载

PYTHON官网:https://www.python.org/

按照对应的系统下载,我这里是window系统,点击windows,根据自己系统操作位数下载

添加环境变量:

如果没有添加,可自行在计算机添加

(二)第三方库的安装

安装selenium和pyquery,在cmd命令下输入 pip install selenium(pyquery安装类似)

如果报错则进入python目录下scripts目录下,再输入命令

在python的IDLE下如果没有报错则安装成功

(三)浏览器及相应浏览器驱动的安装

这里主要使用chrome浏览器,自行去谷歌官网下载安装,安装后查看谷歌版本,单击关于google chrome

(一般在这里都可以找到)

我的版本:67.0

下载对应的webdriver  (这里没有可以自己推测每3个版本,对应一个v65-67---v2.38,即v68-70--v2.39)

下载地址:http://chromedriver.storage.googleapis.com/index.html

把下载好的chromedriver.exe,解压后放到python36目录下(或者python36目录下的scripts)

在IDLE下执行如下代码,会自动打开你谷歌浏览器(环境搭建完成)

(四)实例代码详解

要求:爬取https://www.xuangubao.cn/股票网站的信息((“利好”或“利空”)和“相关股票”),实现点击加载更多

(1)打开浏览器,获取相关讯息:

(2)网页分析(selenium有很多定位方法,这里用到比较少)

在上面的代码中,data已经拥有了网页当前页的所有内容(可输出观察);我们现在只要从中拿到我们想要的数据

在网页中,右键,审查元素,(或者检查)分析网页:(由于得到的data可能与网页的分析有所出入,建议最好输出data,从data中分析得到正则表达式)

我们用正则表达式找到所有以1开头,以2为结尾内容用findall函数

实现点击:(点击之后的”利好”和“相关股票”的正则会与首页的不同(后面点击的与第一次点击后的一样))

定位方法有:(这里用的比较少不做详细介绍,大家自行了解):

find_element_by_id 当你知道一个元素的id属性时使用它。使用此策略,将返回具有与该位置匹配的id属性值的第一个元素。
                 find_element_by_name 当你知道一个元素的name属性时使用它。使用此策略,将返回具有与该位置匹配的id属性值的第一个元素。
                 find_element_by_xpath
                 find_element_by_link_text
                find_element_by_partial_link_text
                find_element_by_tag_name
                find_element_by_class_name
               find_element_by_css_selector


    源码附上:

#coding=utf-8
from selenium import webdriver
import time
import re
from pyquery import PyQuery as pqdef openurl(url,num):browser  = webdriver.Chrome()  #打开浏览器browser.get(url)               #进入相关网站html=browser.page_source       #获取网站源码data=str(pq(html))             #str() 函数将对象转化为适于人阅读的形式。dic={}                         re_rule=r'<div class="news-item-container">(.*?)<div data-v-00b2e9bc=""/>'       datalist=re.findall(re_rule,data,re.S)for i in range(0,len(datalist)):rule1=r'<img src="/img/icon-lihao.png" data-v-6c26747a=""/>(.*?)<!----></span>'bullish = re.findall(rule1,datalist[i],re.S)if len(bullish)==0:rule1=r'<img src="/img/icon-likong.png" data-v-6c26747a=""/>(.*?)</span>'bullish = re.findall(rule1,datalist[i],re.S)rule2=r'<span class="stock-group-item-name" data-v-f97d9694="">(.*?)</span>'stock_name=re.findall(rule2,datalist[i], re.S)if len(stock_name) > 0 and len( bullish) > 0:for c in range(0,len(stock_name)):dic[stock_name[c]]= bullish[0]print("正在爬取第",len(dic)+1,"个请稍等.....") c=len(datalist)if len(dic) < num:while(1):browser.find_element_by_class_name("home-news-footer").click()time.sleep(1)html=browser.page_sourcedata=str(pq(html))datalist=re.findall(re_rule,data,re.S)for i in range(c,len(datalist)):rule3=r'<img data-v-6c26747a="" src="/img/icon-lihao.png"/>(.*?)<!----></span>'bullish = re.findall(rule3,datalist[i],re.S)if len(bullish)==0:rule5=r'<img data-v-6c26747a="" src="/img/icon-likong.png"/>(.*?)</span>'bullish = re.findall(rule5,datalist[i],re.S)rule4=r'<span data-v-f97d9694="" class="stock-group-item-name">(.*?)</span>'stock_name=re.findall(rule4,datalist[i], re.S)if len(stock_name) > 0 and len( bullish) > 0:for c in range(0,len(stock_name)):dic[stock_name[c]]= bullish[0]c=len(datalist)if len(dic) > num :browser.quit()print("爬取完毕!!")breakprint("正在爬取第",len(dic)+1,"个请稍等.....")   else:browser.quit()print("爬取完毕!!")return dicurl='https://www.xuangubao.cn/'
dict=openurl(url,3)
print(dict)
#f=open("F:\\text.txt","a")
#for key,values in  dict.items():#f.write((key+"\t"))#print(key,values)
#f.close()     

---------------------

原文:https://blog.csdn.net/weixin_42551465/article/details/80817552

python爬虫+网页点击事件+selenium模拟浏览器,爬取选股宝内容相关推荐

  1. Python爬虫实战03:用Selenium模拟浏览器爬取淘宝美食

    1 目标站点分析 淘宝页面信息很复杂的,含有各种请求参数和加密参数,如果直接请求或者分析Ajax请求的话会很繁琐.所以我们可以用Selenium来驱动浏览器模拟点击来爬取淘宝的信息.这样我们只要关系操 ...

  2. python爬虫:Selenium模拟浏览器爬取淘宝商品信息

    1.数据提取前期网页分析 分析:淘宝网页数据也是通过Ajax技术获取的,但是淘宝的API接口参数比较复杂,可能包含加密密匙等参数:所以,想要通过自己构造API接口获取完整网页信息很难实现(可能只有部分 ...

  3. 用selenium模拟浏览器爬取淘宝订单信息

    用selenium模拟浏览器登录淘宝爬取自己购买商品的订单信息,代码不是十分完善,但是亲测可用,后期还可以进一步优化. 链接:https://pan.baidu.com/s/1aGwWCFaWPfOU ...

  4. 3.使用Selenium模拟浏览器抓取淘宝商品美食信息

    # 使用selenium+phantomJS模拟浏览器爬取淘宝商品信息 # 思路: # 第一步:利用selenium驱动浏览器,搜索商品信息,得到商品列表 # 第二步:分析商品页数,驱动浏览器翻页,并 ...

  5. Python使用selenium模拟浏览器爬取某查查数据

    在使用爬虫爬取某查查的数据的时候,会被识别到,进行反爬限制,最后使用selenium模拟浏览器进行爬取. 这里解决办法主要使用selenium打开浏览器,模拟人操作进行爬取,代码: ua = 'Moz ...

  6. 解决selenium模拟浏览器爬取(淘宝、微博等需要登陆验证的网站)多次登陆问题

    在爬取淘宝等需要登陆的网站时,模拟点击打开新的页面往往需要重新登陆,这时可以通过采用本地打开一个浏览器,设置监听端口,在该端口下模拟浏览器,这样浏览器会记住所有的用户行为,只要登陆过一次就不必重复登录 ...

  7. python3 简单爬虫实战|使用selenium来模拟浏览器抓取选股宝网站信息里面的股票

    对爬虫的简单介绍 1.    什么是爬虫? 请求页面并提取数据的自动化过程. 2.    爬虫的基本流程 (1) 发起请求:通过url向服务器发起request请求,请求可以包含额外的header信息 ...

  8. 利用python加selenium模拟浏览器爬取百度爱企查企业详细信息

    目录 说明 企查查网页构成方式 代码与详解 说明 本人不是什么爬虫大佬,只是最近在做一个项目的时候需要根据企业的名称把企业的信息爬取下来,例如营业执照.工商注册号等.在网上找了很多的信息与资源,都不是 ...

  9. selenium模拟浏览器-----爬取马蜂窝地区全部景点

    为什么使用selenium 在前面的文章中,我们了解了Ajax的分析和爬取方式,但是,对于参数加密复杂的网页来说,用之前构造请求头的方法来爬取数据未免显得困难,所以这里我们选择了使用selenium. ...

最新文章

  1. Linux基础知识题解答(一)
  2. 计算机应用基础 pdf 陈建军教案,温州市第二职业中等专业学校(温五中) 教学资源 温州市《计算机应用基础》学业水平测试考纲(转发)...
  3. python和stata_在Python中实现Stata的stack功能
  4. Ambari2.6.2集成Kerberos
  5. Android—OkHttp同步异步请求过程源码分析与拦截器
  6. jQuery新版本加载json注意事项。
  7. python 递归函数与循环的区别_提升Python效率之使用循环机制代替递归函数
  8. 【重难点】【JUC 03】怎么实现一个线程安全的队列、手写模拟实现一个阻塞队列
  9. python卡方检验关键词,特征选择——卡方检验(使用Python sklearn进行实现)
  10. java冒险岛_JAVA开发类似冒险岛的游戏Part1
  11. Xsens MVN Analyze高精度惯性动作捕捉系统Link版
  12. Python 调用 kafka 构建完整实例分析与应用
  13. Arduino测试一块5路非自锁开关量输入模块ardunio中断编程示例
  14. 电话按键单词问题(C/C++)
  15. 北京大学C语言学习第三天
  16. 解决vmware虚拟机和宿主机之间不能复制粘贴问题
  17. 华科校园网内ubuntu12.04用锐捷客户端联网流程详解
  18. 计算机启动一下就停机,电脑启动一下就停了怎么办_电脑启动一下就停了是什么原因-win7之家...
  19. 【计算机网络】——体系结构
  20. 信息安全建设之安全平台搭建

热门文章

  1. NPDP第三章:新产品流程
  2. 网易有道,能否看透“K12双减”风浪?
  3. px4直升机混控逻辑整理
  4. adb 判断imei_获取设备序列号 SN码(对应:设置-关于手机-状态-序列号 )
  5. Windows CE SDHC驱动简析(1)-驱动架构(基于WinCE5.0 SMDK2410 BSP的SDHC驱动)
  6. Golang之Shadowed Variables(幽灵变量)
  7. 国风·召南·野有死麕
  8. Downloaded file failed signature verification and may have been tampered with....
  9. 迪杰斯特拉算法和弗洛伊德算法
  10. 【windows】bat 更改系统时间同步internet时间