Python爬虫学习总结

一、前提

请求网站并提取数据的自动化程序, 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
爬虫基本流程

  1. 发起请求:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应。
  2. 获取响应内容:如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML,Json字符串,二进制数据(如图片视频)等类型。
  3. 解析内容:得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析。可能是Json,可以直接转为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。
  4. 保存数据:保存形式多样,可以存为文本,也可以保存至数据库,或者保存特定格式的文件。

二、经验总结

1、爬取数据我个人总结就是大致的 3点:
  1. 请求数据
  2. 进行数据处理
  3. 写数据

第一点 请求的数据 会有几种可能:
1、很简单的html页面。。就直接requests就可以请求成功
2、js渲染的页面 (这种页面超多)requests请求一堆js数据 ,模块 selenium (代码基于浏览器运行)
3、需要登录才能获取用的cookie 请求登录
4、json数据

第二点 数据处理 会有几种可能:

1、请求的数据是简单的html结构页面–直接BS4解析就好了
2、请求的数据是json–导入json模块进行解析
3、请求的数据是简单的js渲染的html页面
其实就是js拼写的html,只要把其他无用的数据匹配掉用正则找到剩下想要的html文本就好了 、然后BS4解析。。

第三点 写数据
open方法进行文件打开 里面的参数进行文件格式设置,读写文件、编码格式操作
with open(“XXX.xxx”,“a”,encoding=“utf-8”) as f :
  f.write(’’‘写入的数据’’’)
文件格式我用过的就是txt、csv 、xml 大部分文本格式都支持的。
a–是创建文件 每次写都是重新创建
w–是追加
a–是读数据
encoding="utf-8"这句话 不加encoding= 在windows系统下会报编码错误 。
然后就是数据量太大 写入到数据库
数据库就用sqlite 记得引入模块 import sqlite3

2、爬取路线选择

静态网页:静态网页以及少量表单交互的网站可以使用如下的技术路线:
  requests + BeautifulSoup + select css选择器
  requests + BeautifulSoup + find_all 进行信息提取
  requests + lxml/etree + xpath 表达式
  requests + lxml/html/fromstring + xpath 表达式
动态网页。简单动态网页,需要有点击或者提交的可以参考selenium + phantomJS组合使用。

Python爬虫学习总结相关推荐

  1. python爬虫正则表达式实例-python爬虫学习三:python正则表达式

    python爬虫学习三:python正则表达式 1.正则表达式基础 a.正则表达式的大致匹配过程: 1.依次拿出表达式和文本中的字符比较 2.如果每一个字符都能匹配,则匹配成功:一旦有匹配不成功的字符 ...

  2. Python爬虫学习系列教程

    大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己实际写的一些小爬虫,在这里跟大家一同分享,希望对Python爬虫 ...

  3. 新手python爬虫代码_新手小白必看 Python爬虫学习路线全面指导

    爬虫是大家公认的入门Python最好方式,没有之一.虽然Python有很多应用的方向,但爬虫对于新手小白而言更友好,原理也更简单,几行代码就能实现基本的爬虫,零基础也能快速入门,让新手小白体会更大的成 ...

  4. Python爬虫学习系列教程-----------爬虫系列 你值的收藏

    静觅 » Python爬虫学习系列教程:http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把 ...

  5. Python 爬虫学习 系列教程

    Python爬虫 --- 中高级爬虫学习路线 :https://www.cnblogs.com/Eeyhan/p/14148832.html 看不清图时,可以把图片保存到本地在打开查看... Pyth ...

  6. 从入门到入土:Python爬虫学习|实例练手|爬取LOL全英雄信息及技能||异步加载|初级难度反扒处理|寻找消失的API

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  7. 从入门到入土:Python爬虫学习|实例练手|详细讲解|爬取腾讯招聘网|一步一步分析|异步加载|初级难度反扒处理|寻找消失的API来找工作吧

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  8. 从入门到入土:Python爬虫学习|实例练手|爬取猫眼榜单|Xpath定位标签爬取|代码

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  9. 从入门到入土:Python爬虫学习|实例练手|爬取百度翻译|Selenium出击|绕过反爬机制|

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  10. 从入门到入土:Python爬虫学习|实例练手|爬取新浪新闻搜索指定内容|Xpath定位标签爬取|代码注释详解

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

最新文章

  1. 真相!没项目经验高薪就无望?
  2. python程序设计案例课堂第二篇_Python程序设计案例课堂第二篇核心技术第十章图形用户界面...
  3. linux小知识之终端
  4. FPGA(0)--quartusⅡ安装
  5. 算法专题 普及组【2008】三3 C++版
  6. Linux进程间通信(四) - 共享内存
  7. 小程序 模糊查询_[轻应用小程序]如何使用信息查询功能?
  8. gdb的user-define command
  9. FTP使用外部数据源
  10. ajax前台转换json数据库,基于jQuery的ajax功能实现web service的json转化
  11. linux终端python自动提示
  12. linux下的C语言开发(动态库)
  13. janusgraph源码分析1-下载编译启动
  14. 研究生课程笔记:软件包在流行病学中的应用(一)——PASS软件
  15. 网络安全管理解决方案
  16. 独创圆柱形投影,索尼高透光HOE全息显示方案详解
  17. leet code 006:ZigZag Conversion
  18. fiddler使用过滤、打断点方法
  19. One-Stage Visual Grounding之一种快速准确的单阶段视觉定位
  20. Spark读取Hdfs上的数据存储在Hbase的ETL过程

热门文章

  1. 40家全球知名MCU生产厂商及其详细介绍
  2. 互联网晚报 | 6月28日 星期二|​ QQ回应大规模账号被盗;iPhone 14系列新机最快8月初量产;微信表情符号写入判决...
  3. Word里面怎么才能输入平方
  4. 11n、11ac和11ax速率表
  5. 输入一个英文字母(可能是大写,也可能是小写),输出该字母在字母表中的序号(’a’和’A’的序号为1)
  6. AD7606调试过程与源码
  7. 局域网服务器如何设置代理访问公网
  8. 无线射频专题《射频合规,无线电认证系列简介,IC/CE/FCC/NCC/KCC/SRRC/ROHS/TELET/REACH/ANATEL》
  9. 蚂蚁区块链BaaS平台架构与实践
  10. HDU 6975 Forgiving Matching 快速傅里叶变换处理带通配符字符串匹配