当前位置:首页 > 经验 >

python爬虫(爬虫实例300例)

来源:原点资讯(www.yd166.com)时间:2022-11-03 05:21:02作者:YD166手机阅读>>

来源:【公众号】

Python技术

爬虫(又称为网页蜘蛛,网络机器人,在 FOAF 社区中间,更经常的称为网页追逐者);它是一种按照一定的规则,自动地抓取网络信息的程序或者脚本。

如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,他们沿着蜘蛛网抓取自己想要的猎物/数据。

python爬虫,爬虫实例300例(1)

爬虫的基本流程

python爬虫,爬虫实例300例(2)

网页的请求与响应

网页的请求和响应方式是 Request 和 Response

Request:用户将自己的信息通过浏览器(socket client)发送给服务器(socket server)

Response:服务器接收请求,分析用户发来的请求信息,收到请求信息后返回数据(返回的数据中可能包含其他链接,如:image、js、css等)

浏览器在接收 Response 后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收 Response 后,是要提取其中的有用数据。

发起请求:Request

请求的发起是使用 http 库向目标站点发起请求,即发送一个Request

Request对象的作用是与客户端交互,收集客户端的 Form、Cookies、超链接,或者收集服务器端的环境变量。

Request 对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过 HTML 表单或在网页地址后面提供参数的方法提交数据。

然后服务器通过 request 对象的相关方法来获取这些数据。request 的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项。

Request 包含:请求 URL、请求头、请求体等

Request 请求方式: GET/POST

请求url: url全称统一资源定位符,一个网页文档、一张图片、 一个视频等都可以用url唯一来确定

请求头: User-agent:请求头中如果没有 user-agent 客户端配置,服务端可能将你当做一个非法用户;

cookies: cookie 用来保存登录信息

一般做爬虫都会加上请求头
例如:抓取百度网址的数据请求信息如下:

python爬虫,爬虫实例300例(3)

python爬虫,爬虫实例300例(4)

获取响应内容

爬虫程序在发送请求后,如果服务器能正常响应,则会得到一个Response,即响应;

Response 信息包含:html、json、图片、视频等,如果没报错则能看到网页的基本信息。例如:一个的获取网页响应内容程序如下:

importrequests request_headers={ 'Accept':'text/html,application/xhtml xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 'Cookie':'BIDUPSID=088AEC1E85F75590978FB3643E131FBA;PSTM=1603682377;BD_UPN=12314753;BDUSS_BFESS=s877ukkvpiduup96naoovu0b94;__yjs_duid=1_04c448abb85383e7fef98fb64b828cce1611538687284;BAIDUID=C6421D51B2DBFF82716EE84B116A4EF8:FG=1;BDSFRCVID_BFESS=rqtOJeC62uF1xmOeQXfguRnVq2hi4t5TH6aINJzxxKt_7w4IsZNSEG0PVf8g0Kubuo1BogKKWeOTHx8F_2uxOjjg8UtVJeC6EG0Ptf8g0f5;H_BDCLCKID_SF_BFESS=tbCH_ItXfCP3JRnYb-Qoq4D_MfOtetJyaR0fKU7vWJ5TEJjz3tuabp_8Lx4H3bQNaHc3Wlvctn3cShPCy-7m-p_z-J6bK6jULNchMhrL3l02VMQae-t2ynLV5HAOW-RMW23U0l7mWPPWsxA45J7cM4IseboJLfT-0bc4KKJxbnLWeIJEjjChDTcyeaLDqbQX2COXsROs2ROOKRcgq4bohjPDynn9BtQmJJrtX4Jtb4oqE4FxQRoChlKJhJAO2JJqQg-q3R5lLt02VlQueq3vBP0Fbfv80x-jLIOOVn0MW-KVo-Jz5tnJyUPibtnnBnkO3H8HL4nv2JcJbM5m3x6qLTKkQN3T-PKO5bRu_CFbtC_hMD-6j6RV-tAjqG-jJTkjt-o2WbCQ-tjM8pcNLTDK5f5L2Mc9Klov5DvtbJrC-CosjDbmjqO1j4_PX46EhnvibN8fLKbY-McFVp5jDh34b6ksD-Rt5JQytmry0hvcQb5cShn9eMjrDRLbXU6BK5vPbNcZ0l8K3l02V-bIe-t2b6Qh-p52f6LjJbC83e;BDORZ=B490B5EBF6F3CD402E515D22BCDA1598;H_PS_PSSID=33425_33439_33258_33272_31660_33463_33459_33321_33264;BAIDUID_BFESS=983CAD9571DCC96332320F573A4A81D5:FG=1;delPer=0;BD_CK_SAM=1;PSINO=7;BDRCVFR[tox4WRQ4-Km]=mk3SLVN4HKm;BDRCVFR[-pGxjrCMryR]=mk3SLVN4HKm;BDRCVFR[CLK3Lyfkr9D]=mk3SLVN4HKm;BDRCVFR[dG2JNJb_ajR]=mk3SLVN4HKm;BD_HOME=1;H_PS_645EC=0c49V2LWy0d6V4FbFplBYiy6xyUu88szhVpw2raoJDgdtE3AL0TxHMUUFPM;BA_HECTOR=0l05812h21248584dc1g38qhn0r;COOKIE_SESSION=1_0_8_3_3_9_0_0_7_3_0_1_5365_0_3_0_1614047800_0_1614047797|9#418111_17_1611988660|5;BDSVRTM=1', 'Host':'www.baidu.com', 'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/88.0.4324.182Safari/537.36'} response=requests.get('https://www.baidu.com/s',params={'wd':'帅哥'},headers=request_headers)#params内部就是调用urlencode print(response.text)

以上内容输出的就是网页的基本信息,它包含 html、json、图片、视频等,如下图所示:

python爬虫,爬虫实例300例(5)

Response 响应后会返回一些响应信息,例下:

1、响应状态

  • 200:代表成功
  • 301:代表跳转
  • 404:文件不存在
  • 403:权限
  • 502:服务器错误

2、Respone header

  • set-cookie:可能有多个,是来告诉浏览器,把cookie保存下来

3、preview 是网页源代码

  • 最主要的部分,包含了请求资源的内容,如网页html、图片、二进制数据等

4、解析内容

解析 html 数据:解析 html 数据方法有使用正则表达式、第三方解析库如 Beautifulsoup,pyquery 等

解析 json 数据:解析 json数据可使用 json 模块

解析二进制数据:以 b 的方式写入文件

5、保存数据

爬取的数据以文件的形式保存在本地或者直接将抓取的内容保存在数据库中,数据库可以是 MySQL、Mongdb、Redis、Oracle 等……

写在最后

爬虫的总流程可以理解为:蜘蛛要抓某个猎物-->沿着蛛丝找到猎物-->吃到猎物;即爬取-->解析-->存储;

在爬取数据过程中所需参考工具如下:

  • 爬虫框架:Scrapy
  • 请求库:requests、selenium
  • 解析库:正则、beautifulsoup、pyquery
  • 存储库:文件、MySQL、Mongodb、Redis……
总结

今天的文章是对爬虫的原理做一个详解,希望对大家有帮助,同时也在后面的工作中奠定基础!

栏目热文

python编程题(99道python编程题)

python编程题(99道python编程题)

一、练习的重要性初学Python,我们不能停留在纸上谈兵,要知行合一。很多沉不下心去做的事情,就不会有进步,到头来会怀疑...

2022-11-03 05:33:23查看全文 >>

怎么学编程(编程必背50个代码)

怎么学编程(编程必背50个代码)

编程的范围实在很大,学什么就是小白的首要问题。如果是学编程希望能够将重复工作自动化这类朋友,直接学Python即可。下文...

2022-11-03 05:33:38查看全文 >>

python求和1到100(python1到100任意两数求和)

python求和1到100(python1到100任意两数求和)

目录元素操作Basic reductionsBroadcasting阵列形状操作排序数据总结1.2.1 元素操作基本操作...

2022-11-03 05:54:48查看全文 >>

c语言入门教程(c语言必背100行代码)

c语言入门教程(c语言必背100行代码)

第一阶段:C语言基础想要一起学习C 的可以加群248894430,群内有各种资料满足大家在开始学习C语言基础时,要反问...

2022-11-03 05:55:39查看全文 >>

编程入门教程免费视频(编程软件scratch)

编程入门教程免费视频(编程软件scratch)

大数据的崛起,各个专业都需要编程!当我们在工作中需要快速掌握和使用新的技术,又没有太多精力从头开始学习,比如,我们现在很...

2022-11-03 05:29:22查看全文 >>

新手如何用手机学黑客(如何零基础学黑客)

新手如何用手机学黑客(如何零基础学黑客)

手机的攻击手法攻击手机常用的手法就是使用手机病毒。由于受目前手机所处的“硬件环境”“软件环境”“通信环境”“人为环境”限...

2022-11-03 05:50:40查看全文 >>

代码入门教学(从零开始学代码)

代码入门教学(从零开始学代码)

在学习编程的初期,看不懂代码是非常正常的现象,因为程序代码的背后涉及到编程语法、资源整合、算法设计、数据结构等一系列内容...

2022-11-03 05:30:35查看全文 >>

如何学习编程(开发一个软件多少钱)

如何学习编程(开发一个软件多少钱)

学习编程的重点就是懂如何学习学习编程的重点就是懂如何学习编程确实不是一件容易的事情,除了要有较强的逻辑思维,还需要花大量...

2022-11-03 05:47:37查看全文 >>

编程怎样学(孩子学编程最佳年龄)

编程怎样学(孩子学编程最佳年龄)

众所周知在快速发展的信息时代,程序员是极具优势的工作,不仅很少被社会琐事烦扰,还能拥有极高报酬。可是作为一个零基础的初学...

2022-11-03 05:36:20查看全文 >>

买运动相机后悔了(运动相机真的很便宜吗)

买运动相机后悔了(运动相机真的很便宜吗)

这么多年过去,Insta360已经成了全景相机的“同义词”,可以理解为全景相机界的苹果/法拉利/深圳湾一号。它在消费全景...

2022-11-03 05:19:56查看全文 >>

文档排行