资讯动态

爬虫救大命!手动收集数据太耗时,Python爬虫一键搞定

发布时间:2026/8/15 4:24:06 来源:尧图企业网站定制
引言于我们的生活里头, 会碰到繁多的数据, 又或者是自身想看的照片, 亦或是电影评分, 还有部分商品比较。在这个当口, 要是我们依靠手动去收集, 那会耗费超多的时间, 以及精力。在这个时刻, 爬虫就在数据收集、分析等方面展现出了它的使用价值。并且本文会简要地讲述跟爬虫有关的知识。一、爬虫入门核心库与基础原理1.1 基础工具的了解抓包, 对于爬虫而言, 就跟网络安全以及网络工程是同一类情况, 它可是一项绝对不能少的工作, 不过, 我们不是像在处理网络安全领域这般采用BP来抓包, 也未曾像在网络工程范畴那样去使用抓包方式, 一般来说, 利用一下浏览器所自带的抓包功能就行啦这里推荐选用微软浏览器哟, 紧接着, 就要开始介绍一下抓包工具的使用办法, 首先要做的就是打开F12。如图中圈出的所示我们主要使用的是、、以及。有人会误以为那等同于源代码, 事实并非如此, 要是想查看源代码, 就得运用鼠标右键进行代码检查, 就像图中所呈现的那样, 这种情况确实存在, 可实际上并非大家所想那样的源代码。那就会有人发问了: 这两者之间存在着啥区别? 比如说以考试来做例子讲, 去查验源代码的话, 就类似于老师给出的卷子的那个标准答案, 然而却是由学霸自己书写出来的不算十分简洁明快的答案。可是那是不是就意味着它是没什么用处的? 答案是不对的, 在一个仅仅只有代码的页面当中, 我们要是想寻觅到我们所需要的标签那是颇为困难的, 有时候就只能有借助其他方式去定位我们所需要的标签了。这是一个起到调试作用的工作台, 它于爬虫里边可发挥的作用并非多么显著, 要是下文存在相应需求的话, 将会专门去进行阐述。是存放了源代码的文件夹可以查看其文件。那么这是我们使用频率最高的, 应当留意让你开启这些选项, 在刷新之后会呈现出所有传输时的数据包, 有时我们所期望得到的就在此地。1.2 基础库引入库 .。即from urllib.request import urlopen接下来以百度为例在库中引用方法url http://www.baidu.com # 定义要访问的url resp urlopen(url) # 打开url #print(resp.read().decode(utf-8)) # 读取响应内容并解码为utf-8,此时拿到的是源代码 with open(mybaidu.html,modew,encodingutf-8) as f: # 打开文件,指定编码为utf-8 f.write(resp.read().decode(utf-8)) # 写入文件最开始的时候, 我们必须要给出一个url, 告知爬虫我们打算前往哪里去爬取, 因而在此种情形下, 就要借助()方法来进行获取url。而通过resp.read()获取得到的实际上是字节, 因而要借助解码的方式, 从而获取到我们能够读懂的源代码。然而解码所依据的码源针对不同网站是存在差异的, 所以在这个时候需要利用CTRLF搜索“”这个单词来寻觅发觉所使用的码源, 百度所采用的是“UTF-8”。如图:图一是未使用解码的效果图二是使用了解码的效果。把它于此处留存下来的这般行为没有历经我们操作, 所以为促使其得以留存下来, 我们借助了一种函数, 也就是“with open() as”。文件读写以后就用with open 语句。with open(filename.txt,r) as f: content f.read(f) #文件的读操作其中意思为保存文件类型为txt以只读的方式打开文件。with open(data.txt,w) as f: content f.write(hello world) #文件的写操作其中意思为保存文件类型为txt以只用于写入的方式打开文件故对于我们想要保存的源代码则需要用到如此语句with open(mybaidu.html,modew,encodingutf-8) as f: f.write(resp.read().decode(utf-8))这段代码段所表达的意思是, 把url对应的页面, 以utf - 8的形式进行解码, 然后写入到.html中, 并且进行保存。不过要注意哦, 那个.库是自身自备的, 然而并不便于使用, 所以要置入崭新的库。此库得借助在终端键入pip去开展下载。待下载完毕之后就能够正常予以运用了。import requests url http://www.baidu.com resp requests.get(url) #发送get请求体 resp.encoding utf-8 print(resp.txt) #拿到页面源代码1.3 POST与GET请求1.3.1 POST请求以百度翻译为例import requests url https://fanyi.baidu.com/sug #对于post无论url有多长都需要拿过来 data { kw:input(请输入一个单词) } rep requests.post(url,datadata) #data为post请求的数据包参数 print(rep.text) #拿到的是文本字符串 print(rep.json()[data]) #此时拿到的直接是json数据关于data那部分内容, 有人或许会质疑道, 它究竟处于何方呢? 我们于百度翻译之中输入dog最终采用中文输入方式。实施抓包操作之后, 能够促使我们于 form data 当中寻觅到与之相对应的数据了, 具体情况以如下图所示作为呈现, 明白吧。1.3.2 GET请求以豆瓣为例import requests #get请求只需要提取问号前面的url url https://movie.douban.com/j/chart/top_list data { type:13, interval_id:100:90, action:, start :0, limit:20 } header { user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 } resp requests.get(url,paramsdata,headersheaders) #处理get请求数据包为params print(resp.text) print(resp.request.url) #查看url在Get请求里面, 对于data部分而言, 它是Query , 处于跟POST请求相同的位置, 要留意一点, 如果只提取问号前面的URL, 而不是提取整个URL, 这是GET请求所需要的。二、网页进行解析, 要从HTML里提取数据, 2.1是关于HTML与CSS, 2.1.1是HTML的基础语法。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价