关于爬虫的一些笔记

0、换行问题
存储的时候显示的
是有效的       也就是写成HTML文档时在编辑器里打开是一行
在读取过来单独使用的时候换行符生效     浏览器里打开HTML就会分行

1、图片  爬取网站图片http://sc.chinaz.com/tupian/xingganmeinvtupian_3.html
懒加载:用到的时候再加载
实现方式:通过页面JS
懒加载特征:
<img src2 = "图片路径">
<img _src = "图片路径">
<img data_src = "图片路径">

image_list = tree.xpath('//div[@id="container"]/div/div/a/img/@src2')    src2


2、jsonpath模块
用来解析josn数据使用的
python处理josn格式用到的函数
    import json
    json.dumps() :将字典或者列表转化为json格式的字符串
    json.loads() :将json格式的字符串转化为python对象
    记忆方法:前两个有s,是字符串和两个格式之间的转化

    json.dump() :将字典或者列表转化为json格式的字符串并且写入到文件中
    json.load() :从文件中读取json格式字符串,转化为python对象
    记忆方法:后两个不带s,属于写入文件和从文件中读取


前端处理:
    将json格式的字符串转化为js对象
    JSON.parse('json格式字符串')
    eval('('+json格式字符串 +')')


xpath和jsonpath的对比:
/        $   根元素
.       @    当前元素
/        .    子元素
//      ..    任意位置查找
*       *     通配符
[]      ?()   过滤
索引1   索引0

3、selenium和PhantomJS
selenium:是一个python的第三方库,对外的接口可以操作你的浏览器,然后让浏览器完成自动化的操作
使用selenium:
    1、安装 pip install selenium
    2、操作浏览器 需要有该浏览器驱动 比如谷歌:chromedriver.exe
#当前设置的驱动路径  详细介绍见selenium自动化操作.py
path =r'E:py爬虫day5geckodriver.exe'
browser = webdriver.Firefox(executable_path=path) 生成一个浏览器对象
url = ""
browser.get(url)  打开网页

各种操作页面元素的函数:
find_element_by_id                      根据id节点查找
find_elements_by_name                   根据name查找
find_elements_by_xpath                  根据xpath查找
find_elements_by_tag_name               根据标签名查找
find_elements_by_class_name             根据class名字查找
find_elements_by_css_selector           根据选择器查找
find_elements_by_link_text              根据连接内容查找
getsend_keysclick



PhantomJS   是一款浏览器,是无界面浏览器
selenium+PhantomJS  就是爬虫的终极解决方案
下拉滚动条到底部   豆瓣电影下拉
#获取网页的代码,保存到文件中
html = browser.page_source

1、前面的登录过程:直接抓包找到post地址,发送过去即刻登陆成功
2、现在的登陆过程:直接抓包post不行,因为表单中有一些数据需要从网页中获取到,
比如这里的formhash令牌。呢么现在的登录需要先发送get请求到登录页面,然后通过xpath、bs
、获取需要的表单令牌,然后在发送post请求,开始登录
作者:求知鱼

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

个性签名:你有一个苹果,我有一个苹果,我们交换一下,一人还是只有一个苹果;你有一种思想,我有一种思想,我们交换一下,一个人就有两种思想。

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

独学而无友,则孤陋而寡闻,开源、分享、白嫖!

原文地址:https://www.cnblogs.com/Qiuzhiyu/p/12182972.html