python-selenium的使用——爬虫

本文介绍如何使用Python的Selenium库来编写爬虫,以获取网络小说并将其转换为TXT格式供Kindle阅读。首先确保Python环境安装完毕,接着安装selenium包和对应浏览器驱动。详细讲解了selenium的基本操作,如查找元素、模拟用户行为,并提供了CSS选择器和XPath的使用示例。最后,讨论了为什么在某些情况下选择Selenium而非requests库的原因。
摘要由CSDN通过智能技术生成

自己想看一本网络小说但是网络上没有可以直接下载的txt格式文件到我的kindle上,于是想写个爬虫。使用python-selenium工具。

0、前提:已经安装好了python环境,包括环境变量。

1、下载selenium包。

      打开命令窗口,输入pip install selenium,即可安装好selenium包

2、下载浏览器驱动。

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

      根据自己浏览器对应的版本下载对应的驱动,例如我的浏览器版本是80.0.3**。引擎放在自己的爬虫文件的同一目录下即可。

 

3、selenium包的一些基本操作(以下内容复制于自己编辑的有道云笔记,复制过来格式有些乱,可移步过去,要有人看我就把笔记整理好放到csdn上)

http://note.youdao.com/noteshare?id=08cd1afbe098849ca5e097a50061d28e

from selenium import webdriver

wd = webdriver.Chrome('驱动位置')

 

0、创建驱动获取当前页面信息

wd.get('www.baidu.com')

wd.title #标题

wd.window_handles #所有的窗口

wd.current_window_handle #当前页面的窗口

wd.current_url #当前页面的url

wd.maximize_window() 最大话页面

 

1、查找元素

wd.find_element_by_id('name') #从元素ID查找

wd.find_elements_by_class_name('name') #从元素CLASS名查找

wd.find_elements_by_tag_name('name') #从元素TAG名查找(tag为尖括号后第一项)

 

2、操作

2.1 常规操作

element.send_keys('message') #输入新字符串

element.click() #点击

element.clear() #清除输入框已有的字符串

element.get_attribute('class') #'value'#input输入框的文本内容

#'outerHTML'#整个HTML文本内容

#'innerHTML'#内部 的HTML文本内容

#'innerText'or'textContent'#未展

#示内容

2.2 高级操作,详情见附录2

from selenium.webdriver.common.action_chains import ActionChains as AC

ac = AC(webdrive对象)

ac.move_to_element(需要移动的位置).perform() #模拟光标移动

 

3、CSS选择(一下方法可混用)

find_element_by_css_selector

3.1css查找

3.2'.'前缀代表查找class

3.3)'#'前缀代表查找id

3.4无前缀代表查找tag

3.5元素1 > 元素2 代表查找元素1的直接子元素2(可多个>)

3.6元素1 元素2 代表查找元素1的后代元素2(可多个空格)

3.7以上3.5和3.6可混用

3.8.1'[att = "val"]' 代表查找属性stt的值为val的元素

3.8.2'[att]' 代表有属性stt的元素,不需要知道值为多少

3.8.3'E[stt = "val"]' 代表查找属性stt的值为val的E元素(中间不能有空格)

3.8.4 E,F 同时匹配所有E元素或F元素,逗号的优先级比其他的符号低

3.9.1 :nth-child(2) 代表查找父元素的第2个节点的元素/ :nth-last-child(1)为父元素最后1个元素 / 前可加tag类型 例: p:nth-child(2)

3.9.2 p:nth-of-type(1) 子元素中tag类型为p的第一个元素/ 倒数 p:nth-last-of-type(1) /参数可以是odd or even 表示奇数或偶数,3.9.1相同

3.10 E + F 查找元素E后紧跟的元素F(E,F为tag类型)

3.11 E ~ F 查找元素E后所有的元素F(E,F为tag类型)

3.12 [href*="str"] 其中*&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值