分享好友 行情首页 行情分类 切换频道
爬虫python需要什么软件-Python爬虫需要学习那些东西?
2024-12-18 14:14  浏览:65

基础爬虫过程

基础的爬虫其实很简单的,主要过程就是:发送请求,并获取响应数据

解析响应数据,获取想要的那部分数据

存储解析出来的数据

基础的爬虫事例

比如我们想写一个爬虫程序,自动为我们获取bing搜索首页的备案号。 />bing搜索首页及备案号

1.首先我们就要找到能获取bing首页的URL,这里不用找,就是:https://cn.bing.com/。然后我们就向这个URL发送一个get请求,并得到响应内容。 />用浏览器请求bing搜索首页获取到的响应头 />用浏览器请求bing搜索首页获取到的响应体

2.然后用正则规则去匹配响应中介于“京ICP备”和“号”中间的内容

3.最终将解析出来的备案号,存储至一个叫bing.txt的文件中

对应的完整代码如下

# coding="utf-8"

# 导入requests库,用于实现HTTP请求

import requests

# 导入正则库

import re

# 请求bing搜索首页,并获取响应

response = requests.get("https://cn.bing.com/")

# 响应头部内容

print(response.headers)

#响应体内容

print(response.text)

# 解析响应内容,获取其中我们想要的备案号

number = re.findall(r'京ICP备(.+?)号', response.text)[0]

print(number)

# 将备案号存储到txt文件中

f = open("bing.txt", 'a')

f.write("bing搜索的备案号为:%s" % number)

f.close()

程序运行后最终输入的结果如下(对比一下,是不是和浏览器获取到的内容一致: />程序运行打印的响应头和响应体 />保存至txt文件的备案号

基础爬虫需要学习的内容

基于上面一个简单的实例,应该了解到,基础爬虫部分,我们只需要掌握以下内容即可。

1.获取URL

也就是大家常说的接口,大概意思就是你从哪个URL才能获取到你想要的数据。简单的我们从浏览器中就可以看到。然而如果是想要获取App的数据呢?所以这里还需要需求一个基本的抓包工具的使用(常见的抓包工具有Fiddler、Wireshark等,新手推荐用Fiddler) />

2.模拟发送基本的请求

当获取到URL之后,我们需要模拟请求一下,看看是否可行。这里推荐大家写代码之前先用postman工具进行模拟请求,请求没问题后再写代码。学习两种常见请求类型的传参方式(get请求、post请求)。并且掌握请求中的基本参数,比如:user-agent、host、origin、cookie、表单参数等。 />使用postman进行模拟请求

3.数据解析

数据解析方面就比较固定了,掌握基本的正则匹配、Beautifulsoup、Xpath、json解析即可。其中正则匹配性能最好,但是研究正则规则比较麻烦,Beautifulsoup语法人性化,最简单,但是性能差一些,所以我一般选这种的xpath解析。推荐大家安装浏览器插件Xpath Helper,可以直接在浏览器中先模拟解析。 />Xpath Helper插件进行模拟解析

4.数据存储

数据存储最常见的当然是存储至数据库了,当然也有存储值excel、存储为json文件等等的。这里只需要掌握python操作数据库就够走遍天下了,并且有精力的情况下最好将MySQL、Sqlite3、Mongodb、Redis都学习一下。

爬虫进阶需要学习的内容

了解了上面整个过程后,基本写一下基础的爬虫就没问题了。但是实际项目中往往还需要一些进阶的内容(这也就是所谓的入门简单,深入还是有一些细碎的知识:攻克对方的反爬虫,这也是爬虫的重中之重,这一步突破不了,后面基本免谈

提高爬虫的效率,这里主要是突破反爬虫限制后,进一步提升数据获取的速度

提升爬虫程序的稳定性,保证爬虫可以长久运行不出错

常见的反爬虫内容上的反爬虫,比如内容中加了很多和主要书籍无关的数据,浏览器中不会显示,但是影响我们代码解析,又或者用图片代替文本等等。所以需要我们熟练的灵活使用各种解析特性,必要时还需要来个图像识别什么的。

3. 请求上的反爬虫,比如请求中需要需要携带一些变化的参数,这部分参数可能是登录的cookie信息,可能是加密算法生成的参数等等。需要我们学习模拟登录,js调试,甚至App逆向分析等。

提高爬虫效率

学会写基本的爬虫调度,意思就是调度请求、解析、数据保存这几件事情的一个方法。然后配合多进程和多线程来提升效率,多线程方面,爬虫上推荐大家多使用协程。有时候问了进一步提升效率和爬虫的稳定性,还会将不同的事情放在不用的服务器上去完成(分布式爬虫部署,比如调度一个中央服务器,然后分配A服务器去完成请求,分配B去进行数据解析,分配C去进行数据下载保存等等。

提升爬虫健壮性

这个在大型项目中是尤为重要的,比如我们有1000万条数据需要获取,但是获取到500万条的时候程序出错了,这时候怎么处理呢?是修复BUG,放弃这500万数据,重新开始呢?还是断点继续呢?基本的我们要知道哪里可能出错,添上对应的错误捕获并记录哪条数据出了什么错误,后续可针对出错的数据再单独爬取。如果想要做的更智能化一点,我们就需要记录程序再哪个节点出错的,当我们修复BUG后,程序下次运行时,程序能自动从此处开始。关于断点呢,具体业务得具体对待,没有固定的方式,不过有几个通用的点可能都会用到,那就是数据重复排查,通过是否重复来判断是否继续。常见的去重就有:数据库去重(查数据是否存在)、缓存去重(利用Redis中的set类型)、内存去重(HashSet、Bit-Map等等

    以上就是本篇文章【爬虫python需要什么软件-Python爬虫需要学习那些东西?】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/quote/1409.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
微信视频号直播广告如何投放
我们现在发现很多企业做微信视频号的直播都要投广告了,没错,通过广告定向投放人群能将精准客户吸引到直播间,再通过主播的带货
IE浏览器软件哪个好 常用的IE浏览器软件排行
在这篇文章中,我们将深入探讨IE浏览器软件的热门选择及其在市场上的常用排行。无论是经典版本还是后续更新,你会了解到哪些浏览
Windows Phone 上的触控手势
下载代码示例当然,对于一种相对仍很年轻的技术来说,存在这么多的触控 API 也不足为奇。而且,多点触控比鼠标要复杂得多。这部
六年级上册16课夏天里的成长评课稿听课记录
六年级上册16课夏天里的成长评课稿听课记录一、读单元页,明确任务师:今天我们来学习第五单元,第五单元是一个习作单元。在这一
影视解说文案自动生成器-影视解说文案自动生成器2.50
在数字化时代的浪潮下,影视行业迎来了前所未有的发展机遇。随着影视作品的增多,怎样为这些作品打造出引人入胜的解说文案,成为
适合发朋友圈的句子大全11篇
【#好词好句# #适合发朋友圈的句子大全11篇#】旅行可以放松自己的心情,宽阔自己的心境,忘掉不顺心,迎接新的开心。旅行是在寻
从零开始学OPERA操作系统
1、房间查找 包括以下内容房间的状态分10种类型所有房间干净,经主管检查有问题,待查房干净房脏房一 快捷键的操作1 F1 OPERA HE
生成式AI为高级分析提供了新的可能性
生成式人工智能(genai) 的出现为工业过程分析带来了令人兴奋的新前景。这项变革性技术可以根据用户的提示生成新的文本、代码和图
阿里P9的真实生活!年薪300万却活得像穷人,依然生活在温饱线上……
  阿里巴巴是许多人梦想的工作地方。  在阿里,P9的年薪甚至高达300万。  他说,他的生活标准,其实并不高,只是跟随着收
本企业新闻
推荐企业新闻
发表评论
0评