python网络爬虫
python网络爬虫的相关笔记
逐梦er
ACM铜牌退役狗、机器学习炼丹师、懒癌晚期患者
展开
-
模拟登陆——以github为例
文章目录1.分析登录过程2.代码实现1.分析登录过程我们以github为例,分析登录的过程打开 GitHub 的登录页面,链接为 https://github.com/login ,输入 GitHub 的用户名和密码,打开开发者工具,将 Preserve Log 选项勾选上,这表示显示持续日志,如下图所示。点击登录按钮,这时便会看到开发者工具下方显示了各个请求过程,如下图所示。点击第一个请求,进入其详情页面,如下图所示。可以看到请求的 URL 为 https://github.com/se原创 2020-10-01 17:23:48 · 2283 阅读 · 3 评论 -
处理动态渲染页面
文章目录1.Selenium的使用2.查找节点3.交互4.动作链5.执行JavaScript6. 获取节点信息6.1 获取属性6.2 获取文本值6.3 获取id、位置、标签名的大小7.切换Frame8.延时等待8.1 隐式等待8.2 显示等待9.前进和后退10.Cookies11.异常处理1.Selenium的使用Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些JavaScript动态渲染的原创 2020-09-29 17:30:57 · 2739 阅读 · 1 评论 -
python网络爬虫学习笔记(十一):Ajax数据爬取
文章目录1.基本介绍2.基本原理3.实战有时候我们在用requests抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用requests得到的结果并没有。这是因为requests获取的都是原始的HTML文档,而浏览器中的页面则是经过JavaScript处理数据后生成的结果,这些数据的来源有多种,可能是通过Ajax加载的,可能是包含在HTML文档中的,也可能是经过JavaScript和特定算法计算后生成的。对于第一种情况,数据加载是一种异步加载方式,原始原创 2020-09-28 15:18:14 · 1118 阅读 · 14 评论 -
python网络爬虫学习笔记(十):数据存储
文章目录1.文本存储2.JSON文件存储2.1 读取JOSN2.2 输出JSON3.CSV文件存储3.1 写入3.2 读取1.文本存储import requestsfrom pyquery import PyQuery as pq url = 'https://www.zhihu.com/explore'headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36原创 2020-09-28 10:06:15 · 2427 阅读 · 15 评论 -
Python网络爬虫学习笔记(十):PyQuery库的使用
文章目录1.初始化1.1 字符串初始化1.2 URL初始化1.3 文件初始化2.CSS选择器3.查找节点3.1 子节点3.2 父节点3.3 兄弟节点遍历4.获取信息4.1 获取属性4.2 获取文本5.节点操作1.初始化1.1 字符串初始化引入PyQuery对象,取别名为pq。声明一个HTML字符串,并将其当作参数传递给PyQuery类,这样就成功完成了初始化。传入li节点,这样就可以选择所有的li节点:from pyquery import PyQuery as pqhtml = '''<原创 2020-09-26 21:08:03 · 556 阅读 · 0 评论 -
python网络爬虫学习笔记(九):Beautiful Soup的使用
文章目录1.基本用法2.节点选择器2.1 获取属性和名称2.2 获取内容(1)子节点和子孙节点(2)父节点和祖先节点(3)兄弟节点3.方法选择器4.CSS选择器Beautiful Soup就是Python的一个HTML或XML的解析库,可以用它来方便地从网页中提取数据。Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为UTF-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时你仅仅需要说明一下原始编码方式就可以了。如果使用lxml,那么在初始化Beauti原创 2020-09-26 11:10:45 · 648 阅读 · 14 评论 -
python网络爬虫学习笔记(八):XPath的使用
文章目录使用XPath1.XPath常用规则2.所有节点3.子节点4.父节点5.属性匹配6.文本获取7.属性获取8.按序选择使用XPathXPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言。1.XPath常用规则这里列出了XPath的常用匹配规则,示例如下://title[@lang='eng']这就是一个XPath规则,它代表选择所有名称为title,同时属性lang的值为eng的节点。后面会通过Python的lxml库,利用XPa原创 2020-09-26 09:58:12 · 611 阅读 · 16 评论 -
python网络爬虫学习笔记(七):正则表达式
文章目录Python正则表达式正则表达式的特点正则表达式的语法字符组元字符与转义排除型字符组字符组简记法量词常用量词Python的`re`模块模式特殊字符(参考教材p140)模式标识符定义匹配的输出命名分组正则表达式替换反向引用具有二义性的反向引用命名分组的引用方法正则表达式工具Python正则表达式正则表达式(regular expression)发源于与计算机密切相关的两个领域:计算理论和形式语言。其主要功能是从字符串中通过特定的模式(pattern)搜索想要的内容。给定一个正则表达式和另一个字符原创 2020-09-24 20:42:44 · 2131 阅读 · 16 评论 -
python网络爬虫学习笔记(六):Requests库的使用
文章目录1.基础操作1.1 GET请求1.2 post请求1.3 响应2.高级用法1.1 文件上传2.2 Cookies2.3 会话维持2.4 SSL证书验证2.5 代理设置2.6 超时设置2.7 身份认证1.基础操作import requestsr = requests.get("https://www.baidu.com/")print(type(r))print(r.status_code)print(type(r.text))print(r.text)print(r.cookies)原创 2020-09-24 11:22:30 · 2480 阅读 · 17 评论 -
python网络爬虫学习笔记(五):urllib.parse库
urllib.parse库定义了处理URL的标准接口,例如实现URL各部分的抽取、合并以及链接转换。它支持如下协议的URL处理:file、ftp、gopher、hdl、http、https等。1.urlparse()该方法可以实现URL的识别和分段,这里先用一个实例来看一下:from urllib.parse import urlparse result = urlparse('http://www.baidu.com/index.html;user?id=5#comment')print(ty原创 2020-09-24 09:14:57 · 597 阅读 · 0 评论 -
python网络爬虫学习笔记(四):异常处理
urllib的error模块定义了由request模块产生的异常。如果出现了问题,request模块便会抛出error模块中定义的异常。1.URLErrorURLError类来自urllib库的error模块,它继承自OSError类,是error异常模块的基类,由request模块生的异常都可以通过捕获这个类来处理。它具有一个属性reason,即返回错误的原因。下面用一个实例来看一下:from urllib import request,errortry: response = req原创 2020-09-24 09:12:54 · 387 阅读 · 0 评论 -
python网络爬虫学习笔记(三):urllib库的使用
文章目录使用urllib库1.urllib.request.urlopen()函数urlopen()函数API:2.urllib.request函数验证Cookies保存Cookies读取Cookies使用urllib库首先,了解一下urllib库,它是Python内置的HTTP请求库,也就是说不需要额外安装即可使用。它包含如下4个模块。request:它是最基本的HTTP请求模块,可以用来模拟发送请求。就像在浏览器里输入网址然后回车一样,只需要给库方法传入URL以及额外的参数,就可以模拟实现这个过程原创 2020-09-23 20:33:54 · 743 阅读 · 1 评论 -
python网络爬虫学习笔记(二):爬虫基本概述
1.爬虫的基本概述(1) 获取网页爬虫首先要做的工作就是获取网页,这里就是获取网页的源代码。源代码里包含了网页的部分有用信息,所以只要把源代码获取下来,就可以从中提取想要的信息了。python提供了许多库来帮助我们实现这个操作,如urllib、requests等。我们可以用这些库来帮助我们实现HTTP请求操作,请求和响应都可以用类库提供的数据结构来表示,得到响应之后只需要解析数据结构中的Body部分即可,即得到网页的源代码,这样我们可以用程序来实现获取网页的过程了。(2)提取信息获取网页源代码后,原创 2020-09-23 07:52:00 · 583 阅读 · 0 评论 -
python网络爬虫学习笔记(一):网页基础
1.URI和URLURI的全称为Uniform Resource Identifier,即统一资源标志符,URL的全称为Universal Resource Locator,即统一资源定位符。2.HTTP和HTTPSHTTP的全称是Hyper Text Transfer Protocol,中文名叫作超文本传输协议。HTTP协议是用于从网络传输超文本数据到本地浏览器的传送协议,它能保证高效而准确地传送超文本文档。HTTP由万维网协会(World Wide Web Consortium)和Internet原创 2020-09-21 23:26:48 · 917 阅读 · 0 评论