zoukankan      html  css  js  c++  java
  • 关于爬虫的一些笔记

    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请求,开始登录
    作者:求知鱼

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

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

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

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

  • 相关阅读:
    SQL Server 日期函数:某天是星期几?
    DZNEmptyDataSet,优秀的空白页或者出错页封装
    SVN文件排除
    Android开发艺术探索读书笔记——进程间通信
    HDU 2110 Crisis of HDU
    Android4.4之后休眠状态下Alarm不准时的问题
    Android App性能測试
    Java笔试面试题整理第一波
    美国大学计算机专业
    js 開始时间,当前时间,结束时间的比較
  • 原文地址:https://www.cnblogs.com/Qiuzhiyu/p/12182972.html
Copyright © 2011-2022 走看看