当前位置: 首页 > 科技观察

想要学习Python爬虫,必须要从头学起!

时间:2023-03-19 20:08:27 科技观察

前言简单来说,互联网就是一个由站点和网络设备组成的大网络。当我们通过浏览器访问一个网站时,该网站会返回HTML、JS和CSS代码给浏览器。这些代码由浏览器解析和呈现。将丰富多彩的网页呈现在我们眼前。 1。什么是爬行动物?如果我们把互联网比作一张大蜘蛛网,数据存储在蜘蛛网的每个节点中,而爬虫就是一只小蜘蛛,它沿着网络抓取自己的猎物(数据)。Request,获取资源后分析提取有用数据的程序;从技术角度,它通过程序模拟浏览器请求站点的行为,将站点返回的HTML代码/JSON数据/二进制数据(图片、视频)抓取到本地,然后提取你需要的数据并存放以备使用。2、爬虫的基本流程:用户获取网络数据的方式:方法一:浏览器提交请求--->下载网页代码--->解析成页面方法二:模拟浏览器发送请求(获取网页代码)->提取有用数据->存入数据库或文件爬虫需要做的是方法2;1、发起请求使用http库向目标站点发起请求,即发送一个RequestRequest包含:请求头、请求体等请求模块缺陷:不执行JS和CSS代码2、获取响应内容如果服务器能正常响应,会得到一个ResponseResponse包含:html,json,图片,视频等。3.解析内容解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等.解析json数据:json模块解析二进制数据:以wb形式写入文件4、保存数据数据库(MySQL、Mongdb、Redis)文件3、http协议请求与响应请求:用户将自己的信息发送到服务器(socketserver)通过浏览器(socket客户端)响应:服务器接收请求,分析用户发送的请求信息,然后返回数据(返回数据可能包含其他链接,如:图片、js、css等.)ps:浏览器接收后esResponse,会解析它的内容显示给用户,爬虫程序会在模拟浏览器发送请求后提取有用的数据,然后接收Response。4.request1、请求方式:常见的请求方式:GET/POST2、请求的URLurl全局统一资源定位器,用于定义互联网上唯一的资源例如:图片、文件、视频都可以使用url***确保url已编码https://www.baidu.com/s?wd=图片和图片都会被编码(见示例代码)网页的加载过程是:加载一个网页,通常是document文档先加载,然后在解析文档文档时,如果遇到链接,就会对该超链接发起图片下载请求。3、请求头User-agent:如果请求头中没有user-agent客户端配置,服务器可能会认为你是非法用户主机;Cookies:cookies用于保存登录信息。注意:一般爬虫会在请求头中加入需要注意的参数:(1)Referrer:访问源来自哪里(部分大型网站会使用Referrer作为防盗链策略;所有爬虫也要注意模拟)(2)User-Agent:你访问的浏览器(添加它否则会被当成爬虫程序)(3)cookie:注意携带请求头4.如果请求体是get方法,则请求body没有Content(get请求的requestbody放在url后面的参数里,直接可以看到)如果是post方式,请求body格式为dataps:1.登录窗口,文件上传等.,信息会附加到requestbody2.登录,输入错误的用户名和密码,然后提交,就可以看到帖子了。正确登录后,页面通常会跳转,无法抓取帖子。存在403:Unauthorizedaccess502:Servererror2.响应头响应头中需要注意的参数:(1)Set-Cookie:BDSVRTM=0;path=/:可能不止一个,是告诉浏览器保存cookie(2)Content-Location:服务器响应头中包含Location返回给浏览器后,浏览器会重新访问另一个页面3.preview是网页的源码JSO数据如网页html,图片二进制数据等6.总结1、总结一下爬虫的过程:爬虫--->解析--->存储2.爬虫需要的工具:请求库:requests、selenium(可以驱动浏览器解析渲染CSS和JS,但有性能劣势(有用和没用的网页都会加载);)解析库:regular、beautifulsoup、pyquery存储库:文件、MySQL、Mongodb、Redis