背负青天而莫之夭阏者,而后乃今将图南。
百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 互联网 > 技术问答 > 正文

python爬虫怎么做?

swdejp 2023-10-23 104 浏览 0 评论

自己从大学开始就学习 Python,目前已经有四五年了 。当初之所以想学习 Python,就是因为看着 Python 能做网络爬虫,能将互联网中的数据收揽在囊中。其实 Python 爬虫不难,只要你用心,能很快学会。


我当时买了一本《Python 基础入门(第二版)》,书中的环境是 Python 2.7。当时我看到 Python 有 3.X 版本,就果断选择新版本。因为自己觉得初学者,选择什么版本都行,不如就选择新版本,这样学到的技术就不会那么快就过时。自己当时是有了 C 语言的编程基础,上手 Python 就很快。自己利用两个星期的时间将这本书给啃完了。这算是将一些 Python 语法基础以及基本操作学会了。然后自己就开始学习爬虫。


自己总结下自己学习爬虫的路线和经验,一共分为四个阶段。希望能帮到你。

以下内容是来源于自己微信公众的文章,略有修改。


第一阶段:夯实

入门要就是在打基础,所以要从最基础的库学起。下面是几个库是入门最经典的

1)urllib

它属于 Python 标准库。该库的作用是请求网页并下载数据。在学习该库之前,最好把 HTTP 协议了解下。这会大大提高后面的学习效率。


先学会如何使用 urllib 请求到数据,再学习一些高级用法。例如: - 设置 Headers: 某些网站反感爬虫的到访,于是对爬虫一律拒绝请求。设置 Headers 可以把请求伪装成浏览器访问网站。 - Proxy 的设置: 某些站点做了反倒链的设置,会将高频繁访问的 IP 地址封掉。所以我们需要用到代理池。 - 错误解析:根据 URLError 与 HTTPError 返回的错误码进行解析。 - Cookie 的使用:可以模拟网站登录,需要结合 cookielib 一起使用。


值得吐槽的是:Python 2.7 和 3.x 版本不兼容很坑。Python 2.7 是有两个 urllib 库,到了 Python 3.x 就合并为同一个库。


2)re

re 是正则表达式库。同时也是 Python 标准库之一。它的作用是匹配我们需要爬取的内容。所以我们需要掌握正则表达式常用符号以及常用方法的用法。


3)BeautifulSoup

BeautifulSoup 是解析网页的一款神器。它可以从 HTML 或者 XML 文件中提取数据。配合 urllib 可以编写出各种小巧精干的爬虫脚本。


第二阶段:进阶

当把基础打牢固之后,我们需要更进一步学习。使用更加完善的库来提高爬取效率

1) 使用多线程

使用多线程抓取数据,提高爬取数据效率。


2)学习 Requests

Requests 作为 urlilb 的替代品。它是更加人性化、更加成熟的第三方库。使用 Requests 来处理各种类型的请求,重复抓取问题、cookies 跟随问题、多线程多进程、多节点抓取、抓取调度、资源压缩等一系列问题。


3)学习 Xpath

Xpath 也算是一款神器。它是一款高效的、表达清晰简单的分析语言。掌握它以后介意弃用正则表达式了。一般是使用浏览器的开发者工具 加 lxml 库。


4)学习 Selenium

使用 Selenium,模拟浏览器提交类似用户的操作,处理js动态产生的网页。因为一些网站的数据是动态加载的。类似这样的网站,当你使用鼠标往下滚动时,会自动加载新的网站。


动态加载数据是利用到 Ajax 技术。如果你能逆向分析出网站请求的方法以及参数(参数经常是加密的),那么可以直接使用 Requests 库直接替代浏览器抓取数据。

实在没有办法,可以使用 Selenium 启动浏览器来抓取。


第三阶段:突破

1)学习 Scrapy

Scrapy 是一个功能非常强大的分布式爬虫框架。我们学会它,就可以不用重复造轮子。


2)数据存储

如果爬取的数据条数较多,我们可以考虑将其存储到数据库中。因此,我们需要学会 MySql MongoDB、SqlLite的用法。更加深入的,可以学习数据库的查询优化。


第四阶段:为我所用

当爬虫完成工作,我们已经拿到数据。我们可以利用这些数据做数据分析、数据可视化、做创业项目原始启动数据等。 我们可以学习 NumPy、Pandas、 Matplotlib 这三个库。 - NumPy :它是高性能科学计算和数据分析的基础包。

  • NumPy :它是高性能科学计算和数据分析的基础包。

  • Pandas : 基于 NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。它可以算得上作弊工具。

  • Matplotlib:Python中最著名的绘图系统Python中最著名的绘图系统。它可以制作出散点图,折线图,条形图,直方图,饼状图,箱形图散点图,折线图,条形图,直方图,饼状图,箱形图等。

python爬虫怎么做?


相关推荐

vue学习起来困难吗?

1、Vue前端框架并不适合新手学习Vue框架里使用了很多技术:HTML、CSS、JS基础、ES6、Webpack、npm工具等,现在市面上很多Vue教程都默许你已经掌握了这些知识,如果这些基础知识掌握...

小白学编程从什么开始?

一、理解什么是编程语言计算机是要为人工作的,感谢开发人员的付出,开发了许多方便快捷的工具软件和服务!得以让普通人群在PhotoShop鼠标点点就能处理图片、Excel拖拖拽指就能创建图表、打开网页...

怎么学好编程?

谢邀!首先编程语言很很多种C++、Java、android、ios、php等,各类型的编程语言基础也不一样,应用更是不一样:c++属于汇编语言,多用于底层开发,硬件编程嵌入等;而java是面向对象开发...

外行人学习编程需要怎样入门?

外行人如何学习编程,对于没有软件基础知识积累的人,入门编程的话,首先要选择适合自己发展的方向,现在有很多软件编程方向,软件专业也不同,比如,HTML网页设计、安卓、iOS、信息安全、嵌入式软件、前端、...

如何快速学习编程?有哪些学习方法?

作为一名老程序员来回答一下这个问题。学习编程的途径还是比较多的,也有一些行之有效的方法,我带过不少程序员,也给不少大型软件企业的程序员做过开发语言的内训,我就讲一讲都有哪些学习编程的方法。方法一:看书...

编程能不能自学?

能,但路不能偏了。一、不要把精力花在框架学习上,基础打扎实了,框架拿着就能用。二、不要把精力花在语言学习上,大部分语言都一样。类C的语言,会一个,其它的应该在一到两天学会。三、要学数据结构,计算机组成...

TypeScript会成为ES的标准吗?

不会ES:全称ECMAScript,简称ES。第一个版本是在2015年6月进行发布,叫做ES2015,后面以每年一个版本的速度发展到如今的ES9。ES是一种规范,所有的主流浏览器需要遵循ES的规范去实...

TypeScript和JavaScript的区别?

区别主要有两点;javascript和typescript的区别一:概念对比JavaScript是一种轻量级的解释性脚本语言,无需编译,可嵌入到HTML页面中,在浏览器端执行,能够实现浏览器端丰...

TypeScript解决了什么痛点?
TypeScript解决了什么痛点?

TypeScript本身就不细说了,无非就是微软推出来的一个JavaScript的超集而已。既然TypeScript被定义为JavaScript的...

7个月前 (11-09) swdejp

谈谈你对ajax的理解?

ajax,是一种可以异步向服务器发出http请求的方式。普通的HTTP请求此浏览器发出的,而通过ajax技术,我们可以在需要的时候用js发出ajax的http请求,解析返回的数据,通过DOM技术,实现...

AJAX技术的弊端是什么?什么时候应该使用AJAX?

对于Web开发人员而言,Ajax一点也不陌生,现在Ajax技术是交互式网页的标配技术,通过它可以在不加载整个网页的基础下更新部分数据的显示。Ajax是一种异步数据通信方式Ajax其实是异步JavaSc...

AJAX是什么?

Ajax即“AsynchronousJavascriptAndXML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax=异步JavaScri...

jquery是干什么的

jquery是一个JavaScript函数库,它封装了JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。jQuer...

python爬虫怎么做?
python爬虫怎么做?

自己从大学开始就学习Python,目前已经有四五年了。当初之所以想学习Python,就是因为看着Python能做网络爬虫,能将互联网中的数据收揽在囊中...

7个月前 (10-23) swdejp

既然JSONP同样可以请求到数据,还可以跨域,为什么还要用axios?

题主概念混淆了,axios和jsonp并不是解决同一问题的东西axios是一种ajax请求的封装而jsonp是一种跨域ajax请求的解决方案所以说就算是你用axios一样会有跨域问题,而遇到跨域的问题...

取消回复欢迎 发表评论: