![](https://img-blog.csdnimg.cn/20200324093359840.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
【Python爬虫知识】
文章平均质量分 95
Python爬虫知识储备
Giyn
个人博客:https://giyn.work
联系邮箱:490601115@qq.com
展开
-
Pyppeteer 的基本使用方法
什么是 Puppeteer?要想知道什么是 Pyppeteer,首先应该先了解一下 Puppeteer:Puppeteer 是 Google 基于 Node.js 开发的一个工具,拥有 Puppeteer 即可通过 JavaScript 来控制 Chrome 浏览器的一些操作,也可以用于网络爬虫上,其 API 极其完善,功能非常强大。什么是 Pyppeteer?Pyppeteer 是 Puppeteer 的 Python 实现,在 Pyppetter 背后也有一个类似 Chrome 浏览器的 Chr原创 2021-01-29 14:55:18 · 6235 阅读 · 6 评论 -
【Python爬虫】—— Selenium 的基本使用
在很多情况下,Ajax 请求的接口通常会包含加密的参数。由于接口的请求加上了参数,如果不深入分析并找到构造逻辑,是难以直接模拟这些 Ajax 请求的。此时解决方法通常有两种,一种是深挖其中的逻辑,把其中的构造逻辑完全找出来,再用 Python 复现,构造 Ajax 请求;另外一种方法就是直接通过模拟浏览器的方式,绕过这个过程。此处可以使用 Selenium 工具模拟浏览器爬取。Selenium 是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现原创 2020-07-14 16:11:53 · 1164 阅读 · 1 评论 -
【Python爬虫】—— Ajax 的原理和分析
什么是 AjaxAjax,全称为 Asynchronous JavaScript and XML,即异步的 JavaScript 和 XML。它是一种利用 JavaScript 在保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页的技术。Ajax 的优点对于传统的网页,如果想更新其内容则必须刷新整个页面。有了 Ajax,便可以在页面不被全部刷新的情况下更新其内容。在此过程中,页面实际上在后台与服务器进行了数据交互,获取到数据之后,再利用 JavaScript 改变网页,这样网页内原创 2020-07-12 16:57:32 · 752 阅读 · 1 评论 -
【Python爬虫】—— 多进程基本原理
多进程的含义进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位多进程就是启用多个进程同时运行。Python 多进程的优势由于进程中 GIL 的存在,Python 中的多线程并不能很好地发挥多核优势,一个进程中的多个线程,同一时刻只能有一个线程运行。在 Python 多线程下,每个线程的执行方式如下:获取 GIL执行对应线程的代码释放 GIL对于多进程来说,每个进程都有属于自己的 GIL,所以在多核处理器下,多进原创 2020-06-05 09:02:51 · 634 阅读 · 1 评论 -
【Python爬虫】—— 多线程基本原理
多线程的含义进程可以理解为是一个可以独立运行的程序单位。比如:打开一个浏览器,就开启了一个浏览器进程。打开一个文本编辑器,就开启了一个文本编辑器进程。一个进程中可以同时处理很多事情。比如:浏览器中可以在多个选项卡中打开多个页面,有的页面在播放音乐,有的页面在播放视频,有的网页在播放动画,可以同时运行,互不干扰。为什么能同时做到同时运行这么多的任务呢?任务对应着线程的执行。进程 是线程的集合,是由一个或多个线程构成的。线程 是操作系统进行运算调度的最小单位,是进程中的一个最小原创 2020-06-04 08:57:39 · 1043 阅读 · 2 评论 -
【Python爬虫】—— Session 与 Cookies
静态网页和动态网页静态网页<!DOCTYPE html><html> <head><meta charset="UTF-8"><title>This is a Demo</title></head><body> <div id="container"><div class="wrapper"><h2 class="title"> Hello World&原创 2020-06-03 09:39:47 · 749 阅读 · 1 评论 -
【Python爬虫】—— Web网页基础
网页的组成网页可以分为三大部分:HTML、CSS 和 JavaScriptHTML 相当于骨架JavaScript 相当于肌肉CSS 相当于皮肤HTMLHTML 是用来描述网页的一种语言,全称为 Hyper Text Markup Language 超文本标记语言不同类型的元素通过不同类型的标签来表示:图片用 img 标签表示视频用 video 标签表示段落用 p 标签表示它们之间的布局又常通过布局标签 div 嵌套组合而成CSSCSS 全称叫作 Cascading S原创 2020-06-02 09:31:45 · 423 阅读 · 1 评论 -
【Python爬虫】—— HTTP基本原理
URI和URLURI(Uniform Resource Identifier)即统一资源标志符URL(Universal Resource Locator)即统一资源定位符例如:https://github.com/favicon.ico 既是一个URL,也是一个URI即有这样的一个图标资源用 URL/URI 来唯一指定它的访问方式这其中包括了访问协议 HTTPS、访问路径(即根目录)和资源名称 favicon.icoURL是URI的一个子集URI还包括一个子类 URN(Univer原创 2020-05-30 10:12:18 · 620 阅读 · 1 评论 -
requests的代理的设置
在爬虫运行的时候,有时候会出现403 Forbidden的情况,也就是我们的访问次数超过了目标网站设置的阈值,这样它就会直接拒绝服务,返回一些错误信息,也就是所谓的封IP。接下来我们尝试基于requests的代理的设置:requests 的代理设置比 urllib 简单很多,它只需要构造代理字典,然后通过 proxies 参数即可,而不需要重新构建 Opener。代码如下:impo...原创 2020-04-13 09:03:11 · 60346 阅读 · 2 评论 -
【Beautiful Soup库】{3} ——基于bs4库的HTML格式化和编码
此处介绍基于bs4库的HTML格式输出。原创 2020-03-17 09:02:50 · 602 阅读 · 1 评论 -
【Beautiful Soup库】{2} ——基于bs4库的HTML内容遍历方法
回顾一下demo.html:HTML基本格式:把 HTML代码做一个结构化的设计,我们可以发现,这个demo配置,是一个具有树形结构的文本信息,里面有很多标签,标签标明了信息结构的逻辑关系。标签树的下行遍历:属性说明.contents子节点的列表,将< tag >所有儿子节点存入列表.children子节点的迭代类型,与.contents类似...原创 2020-03-16 20:07:45 · 593 阅读 · 1 评论 -
【Beautiful Soup库】{1} ——Beautiful Soup库的基本元素
Beautiful Soup库的理解:Beautiful Soup库是解析、遍历、维护“标签树”的功能库。属性用来定义标签的特点,由键值对构成.Beautiful Soup库的引用:Beautiful Soup库,也叫 beautifulsoup4 或 bs4。from bs4 import BeautifulSoupimport bs4如何理解BeautifulSoup这...原创 2020-03-15 08:53:45 · 527 阅读 · 1 评论 -
【Beautiful Soup库】{0} ——Beautiful Soup库的简介
首先我们安装一下 Beautiful Soup库:以管理员身份运行命令提示符,输入pip install beautifulsoup4:Beautiful Soup库简介:Beautiful Soup库能够对HTML、XML格式进行解析,并且提取其中的相关信息。Beautiful Soup库可以对你提供给它的任何格式进行相关的爬取,并且可以进行树形解析。Beautiful Soup库...原创 2020-03-14 09:18:05 · 303 阅读 · 1 评论 -
【Requests库】{5} ——Requests库爬取实例
实例1:京东商品页面的爬取https://item.jd.com/100010260254.html我们要做的事情是,通过这个链接获得商品的相关信息。这说明,我们从HTTP的头部分已经可以解析出这个页面的编码信息,这说明京东的网站提供了这个页面信息的相关编码。只打印前1000行,全部太多了京东商品页面信息的全代码:import requestsurl = "https:/...原创 2020-03-13 10:05:44 · 533 阅读 · 1 评论 -
【Requests库】{4} ——Requests库主要方法解析
Requests库的7个主要方法:方法说明requests.request()构造一个请求,支撑以下各方法的基础方法requests.get()获取HTML网页的主要方法,对应于HTTP的GETrequests.head()获取HTML网页头信息的方法,对应于HTTP的HEADrequests.post()向HTML网页提交POST请求的方法,对应于...原创 2020-03-12 10:14:59 · 519 阅读 · 1 评论 -
【Requests库】{3} ——HTTP协议及Requests库方法
Requests库的7个主要方法:方法说明requests.request()构造一个请求,支撑以下各方法的基础方法requests.get()获取HTML网页的主要方法,对应于HTTP的GETrequests.head()获取HTML网页头信息的方法,对应于HTTP的HEADrequests.post()向HTML网页提交POST请求的方法,对应于...原创 2020-03-11 09:19:03 · 318 阅读 · 1 评论 -
【Requests库】{2} ——爬取网页的通用代码框架
网络连接有风险,异常处理很重要理解 Requests库的异常:异常说明requests.ConnectionError网络连接错误异常,如DNS查询失败、拒绝连接等requests.HTTPErrorHTTP错误异常requests.URLRequiredURL缺失异常requests.TooManyRedirects超过最大重定向次数,产生重定向...原创 2020-03-10 08:37:45 · 243 阅读 · 2 评论 -
【Requests库】{1} ——Requests库的get()方法
Requests库的get()方法获得一个网页最简单的两行代码就是:import requestsr = requests.get(url)Requests对象是内部生成的requests.get()返回的内容用r表示,r是一个Response对象python是大小写敏感的,所以R是大写的requests.get()的完整使用方法:requests.get(url, p...原创 2020-03-09 10:10:57 · 751 阅读 · 1 评论 -
【Requests库】{0} ——Requests库的介绍
Requests库Requests库是python的第三方库,是目前公认的爬取网页最好的第三方库。它有两个特点:简单、简洁。抓取百度主页:Requests库的7个主要方法:方法说明requests.request()构造一个请求,支撑以下各方法的基础方法requests.get()获取HTML网页的主要方法,对应于HTTP的GETrequests....原创 2020-03-08 09:20:20 · 283 阅读 · 1 评论