(一)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函数
实现点击:(点击之后的”利好”和“相关股票”的正则会与首页的不同(后面点击的与第一次点击后的一样))
定位方法有:(这里用的比较少不做详细介绍,大家自行了解):
源码附上:
#coding=utf-8
from selenium import webdriver
import time
import re
from pyquery import PyQuery as pq
def openurl(url,num):
browser = webdriver.Chrome() #打开浏览器
browser.get(url) #进入相关网站
html=browser.page_source #获取网站源码
data=str(pq(html)) #str() 函数将对象转化为适于人阅读的形式。
dic={}
re_rule=r'