数据接口(json)和selenium的使用

创建文件

import os
# os.mkdiv(文件名)
os.mkdiv('test')
#创建名为test的文件夹
# os.path.exists(文件名)   判断文件是否存在 返回布尔值

数据接口

有些文件会以接口的形式传入,找到接口之后提取源代码就行。

例如:英雄联盟的的英雄大部分都是接口的形式

url = https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js

将这个获取到的requests.get(url) 将JSON数据转为python的数据源。(大部分是字典)

然后用字典操作数据比较简单

最后写入文件中

selenium的基本步骤

需要下载浏览器驱动

查看自己的浏览器版本:chrome://version/

下载驱动版本和自己浏览器最近的版本号:(国内镜像文件)https://registry.npmmirror.com/binary.html?path=chromedriver/

注意:如果没有自己浏览器的版本号,找与之对应最接近的一个版本号的文件夹,下载对应的系统就行,放在安装python的主环境中。

1.创建浏览器对象(浏览器对象如果是全局变量,浏览器不会自动关闭)
from selenium.webdriver import Chrome
b = Chrome()
2.打开网页(你需要爬的数据在哪个网页里面,就打开哪个网页)
b.get('https://movie.douban.com/top250')
3.获取网页源代码(获取到一定是页面中加载出来的)

有时候网比较卡的时候可以调用time模块中的sleep函数

浏览器对象.page_source

print(b.page_source)
4.关闭浏览器
b.close()

selenium的使用方法

1.输入框输入内容

1)找到输入框

网页对象.find_element_by_id() 虽然是id属性的值,但是不用加#,class属性也不加. 直接写标签名

网页对象.find_element_by_css_selector() 后面接CSS选择器 找到下面的第一个标签

如果element是复数加了s就代表是许多,返回列表

2)输入框输入内容

节点对象.send_keys(输入字符串)(末尾加一个\n可以代表按了一个回车。换行嘛)

2.点击按钮

1)找到需要点击的标签

节点对象.click()

3.切换选项卡
获取需要点击的所有标签:如果拿到标签后需要点击或者输入,必须通过浏览器获取标签

有时候点击一个链接会打开一个新的选项卡

这时候就要切换选项卡

就算点开了新的链接,只要不在原来的网页重新覆盖,创建的浏览器对象就依然是最开始的b= chrome()

切换对象的方法:浏览器对象.switch_to.window(选项卡名)
网页名查找方法:浏览器对象.window_handles 这个数据一般返回一个列表。直接取-1的下标,就是最新打开的选项卡名。 (打印出来不是中文名字,只是一个地址,但是理解成选项卡名会更好理解一点)

此时浏览器对象就换成新打开的,可以对这些进行操作。

最后还是要换回初始浏览器对象在操作其他的链接。

步骤1:关闭新的浏览器对象

步骤2:切换选项卡。 (一般把下标写成0。)

一般selenium的思路步骤:
就和我们人去打开浏览器操作是一样的

打开浏览器(创建浏览器对象)-浏览器输入网页(浏览器对象.get()操作)-选中点击获取输入的标签-send_keys或者选中标签点击click

如果有选项卡,需要切换选项卡 - 浏览器对象.switch_to.window(选项卡名) {选项卡名字,浏览器对象.window_handles[-1]} 返回列表 (此时就切换了浏览器对象在新网页上)

操作完新浏览器对象操作之后,需要关闭浏览器,关闭之后浏览器对象不会发生改变,也要切换回来

selenium操作页面滚动

浏览器对象.execute_script(window.srcollBy(x方向偏移量,y方向偏移量))

滚动之后过几秒在获取数据

cookie的设置

requests:直接在网页需要登录之后,找到对应网页的request Hearders 的cookie的值,复制在Hearder里面

selenium:需要先在浏览器对象里面登录一次,在刷新网页,然后获取cookie值(返回一个列表),result = 浏览器对象.get_cookies() . 将result写入txt文件,(一般将此数据转成json文件写入txt,下次提取就很方便了)

下次打开网页,在将写入的txt文件的cookie读出来(json数据格式的文件),在转为python格式文件。遍历这个列表中每个元素依次加入网页的cookie里面。浏览器对象.add_cookie(‘列表中的各个元素’)

with open('testCookies.txt', encoding='utf-8') as f:
    cookies = f.read()
    mycookies = json.loads(cookies)

for i in mycookies:
    b.add_cookie(i)

代理IP

requests的代理方法
proxies = {
    'http': 'http://221.10.105.215:4531',
    'https': 'http://221.10.105.215:4531'
}
respones = requests.get('https://www.douban.com',headers=hearders,proxies=proxies)

221.10.105.215:4531 这个就是我找到的代理ip值。

这样就完成了requests的更换代理ip值

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值