Python爬虫学习笔记
文章平均质量分 91
记录Python学习爬虫课程的相关笔记
tzr0725
这个作者很懒,什么都没留下…
展开
-
Python爬虫学习笔记-第十九课(Scrapy基础上)
Scrapy入门原创 2021-01-28 17:59:22 · 281 阅读 · 0 评论 -
Python爬虫学习笔记-第二课(网络请求模块上)
网络请求模块上1. 相关概念介绍1.1 向网站发起请求的方式:1.2 url-全球统一资源定位符1.3 user-agent 用户代理1.4 referer1.5 状态码1.6 抓包工具爬虫的分类通用网络爬虫,例如百度、Google、360;聚焦网络爬虫,根据既定的目标有选择的抓取某一特定主题的内容。1. 相关概念介绍1.1 向网站发起请求的方式:Get查询参数会在url地址中显示;通常应用于直接从服务器上获取数据,不会对服务器上的数据产生影响;图片Post查询参数不会显示在ur原创 2020-12-11 14:50:07 · 2772 阅读 · 1 评论 -
Python爬虫学习笔记-第十六课(字体反爬+css反爬)
字体反爬1. 汽车之家案例1.1 字体反爬现象1.2 解决方案1.3 完整代码2. 猫眼电影案例2.1 字体反爬现象2.2 案例代码3. 自如案例3.1 css反爬现象1. 汽车之家案例1.1 字体反爬现象字体反爬通常出现在论坛、小说网站等,因为这些网站的文本内容通常具有较高的商业价值。首先给出相关网站的链接:汽车之家的示例链接从上图中看,某些文字在开发者工具的element中并没有显示为正常的字体,比如“了”和“一”都显示成了某种特殊字符。上述现象表明网站对论坛中帖子的文本内容做了相关的反爬措施原创 2021-01-20 10:24:28 · 637 阅读 · 0 评论 -
Python爬虫学习笔记-第二十三课(Scrapy框架进阶+Redis入门)
Scrapy模拟登陆+MiddleWares1. 设置代理IP1.1 基本概念2. 案例练习2. scrapy集成selenium2.1 思路分析2.2 案例代码1. 设置代理IP1.1 基本概念什么是代理IP:代理IP服务器是在计算机上运行的专用计算机或软件系统,其充当端点设备(例如计算机)与用户或客户端从其请求服务的另一服务器之间的中介。为什么要设置代理IP:突破自身的IP访问限制,防止因短时间频繁访问导致IP被封;隐藏自身真实的IP。import requestsurl = 'h原创 2021-03-18 14:45:07 · 240 阅读 · 2 评论 -
Python爬虫学习笔记-第二十四课(Redis数据类型+Python与redis的交互)
Scrapy模拟登陆+MiddleWares1. 设置代理IP1.1 基本概念1. 设置代理IP1.1 基本概念什么是代理IP:代理IP服务器是在计算机上运行的专用计算机或软件系统,其充当端点设备(例如计算机)与用户或客户端从其请求服务的另一服务器之间的中介。...原创 2021-03-17 16:26:27 · 170 阅读 · 0 评论 -
Python爬虫学习笔记-第三课(网络请求模块下)
网络请求模块下1. Get案例1.1 代码需求:爬取贴吧数据1.2 代码思路1.3 代码实现2. post案例3. requests模块简介1. Get案例1.1 代码需求:爬取贴吧数据以“天命奇御”贴吧为例,一般贴吧上有许多不同类型的数据,有文字、图片、音频、视频等。笔者在这介绍的是向贴吧的url发起请求,获取响应对象,用read()方法读取内容,暂时不再具体解析数据类型。代码想要实现的功能:输入贴吧的主题(例如:天命奇御)输入想要爬取的起始页和终止页(例如:1-3)把每一页的数据保存到原创 2020-12-12 14:51:06 · 349 阅读 · 1 评论 -
Python爬虫学习笔记-第十八课(Scrapy入门)
Scrapy1. Scrapy简介及安装2. Scrapy的工作流程3. Scrapy的快速入门3.2 案例练习4. pipeline 管道文件1. Scrapy简介及安装为什么要学习Scrapy:可以大幅提升爬虫的效率。什么是Scrapy:⼀个为了爬取网站数据,提取结构性数据而编写的应用框架。Scrapy的优点:可配置和扩展性高;基于Twisted异步网络框架,只需要实现少量的代码,就能够快速的抓取。同步与异步异步:调用在发出之后,这个调用就直接返回,不管有无结果;非阻塞:关注的是原创 2021-01-27 10:08:09 · 473 阅读 · 0 评论 -
Python爬虫学习笔记-第二十六课(MongoDB上)
MongoDB1. MongoDB入门1.1 基本概念1.2 下载与安装1.3 运行MongDB1. MongoDB入门1.1 基本概念MongoDB是⼀个基于分布式文件存储的nosql数据库,非关系型的数据库保存数据的类型非常的灵活。在处理大数据的时候会比MySQL更有优势。爬虫的数据如果上了⼀个量级,可能用MongoDB会比MySQL更好。优势:1.无数据结构的限制,业务开发非常快捷;2.大数据量和高性能;3.良好的支持:完善的文档+齐全的驱动支持。1.2 下载与安装官网链接:http原创 2021-03-17 18:07:37 · 260 阅读 · 0 评论 -
Python爬虫学习笔记-第二十五课(Scrapy-Redis的学习与使用)
Scrapy-Redis的学习与使用1. Scrapy-Redis入门1.1 基本概念1.2 下载与安装1.3 分布式爬虫2. 案例演示2.1 采用Scrapy实现1. Scrapy-Redis入门1.1 基本概念为什么要学习Scrapy-Redis?第一个:了解工作流程(面试);第二个:要求会把普通的爬虫改写成分布式爬虫。scrapy和scrapy-redis有什么区别?scrapy是爬虫的一个框架,爬取效率非常高,具有高度的可定制性,不支持分布式;scrapy-redis是基于redi原创 2021-03-22 12:13:16 · 263 阅读 · 0 评论 -
Python爬虫学习笔记-第二十七课(MongoDB下)
MongoDB下1. MongoDB的数据操作1.1 修改数据1.2 删除数据1.3 小练习2. MongoDB的聚合命令3. mongodb的索引操作4. python来操作mongo4.1 基本步骤4.2 示例代码1. MongoDB的数据操作1.1 修改数据> db.集合名称.update({query}, {update}, {multi: boolean})参数query:查询条件参数update:更新操作符参数multi:可选,默认是false,表示只更新找到的第⼀条数据,值原创 2021-03-18 11:38:46 · 461 阅读 · 0 评论 -
Python爬虫学习笔记-第十二+十三课(selenium综合练习-12306购票)
selenium下1. 网站登录无法对上图第一个input标签直接使用send_keys()方法来选定起始地或者目的地,因为它的值是城市代号。我们只能等待加载到第二个input标签的值为期望数据时(这里暂时是手动选择),完成显式等待,继续执行下一步代码。1. 网站登录init()方法:传递起始地、目的地和乘车日期run()方法:封装项目的基本功能main()方法:创建对象,并调用相关的方法完成购票...原创 2021-01-10 21:57:28 · 782 阅读 · 0 评论 -
Python爬虫学习笔记-第十五课(资源竞争+生产者消费者模型)
资源竞争+生产者消费者模型1. 线程间的通信2. 线程间的资源竞争2.1 资源竞争的产生2.2 互斥锁和死锁2.3 Queue线程3. 生产者和消费者3.1 基本概念3.2 简单案例4. 多线程与爬虫1. 线程间的通信在⼀个函数中,对全局变量进行修改的时候,是否要加global要看是否对全局变量的指向进行了修改,如果修改了指向,那么必须使用global,仅仅是修改了指向的空间中的数据,此时不用必须使用global。示例代码:a = 20b = 30c = [1,2,3]def func():原创 2021-01-14 17:12:04 · 243 阅读 · 0 评论 -
Python爬虫学习笔记-第七课(XPath相关知识点)
xpathxpath介绍基本概念:首先,正则表达式使用时先由用户指定模板,再根据模板匹配需要的数据。假设有如下需求:寻找人才,要求是。对于正则表达式,如果给的模板比较严格(不要工资这一项,几乎没有人才能匹配上),或者模板本身很难编写,那么它的使用会受到很大的限制。对于xpath,就好比有一位资深HR告诉你,xxx街道xxx可以找到所需要的人才。以上述需求为例,xpath是一种可以根据地址找人的技术,全称:XML Path Language通过元素和属性导航...原创 2020-12-25 16:14:23 · 244 阅读 · 1 评论 -
Python爬虫学习笔记-第十课(selenium上)
selenium上1. 基本概念2.1. 基本概念selenium是⼀个web的自动化测试⼯具,最初是为网站自动化测试而开发的,selenium可以直接运行在浏览器上,它支持所有主流的浏览器,可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏。selenium的优点是直接模拟浏览器的行为。浏览器能请求到的,使用selenium也能请求到,爬虫更稳定。相对的,它的缺点是代码量多,性能低。chromedriver是⼀个驱动Chrome浏览器的驱动程序,使用它才可以驱动浏览器。下载方式:使原创 2021-01-04 09:33:46 · 235 阅读 · 0 评论 -
Python爬虫学习笔记-第二十二课(Scrapy模拟登陆+MiddleWares)
Scrapy基础下1. Scrapy模拟登陆1.1 模拟登陆人人网1.2 模拟登陆github1. Scrapy模拟登陆如果不用scrapy,模拟登陆的方式有如下几种:直接携带cookie来请求页面;发送post请求携带数据进行模拟登录;selenium进行模拟登录 (找到对应的input标签,输入内容,点击登录)。1.1 模拟登陆人人网首先,获取个人的详情页面:在这里插入代码片PICTURES需要注意的是parse()方法是下载器向start_urls发起请求获得响应后执行的方法原创 2021-02-03 16:50:04 · 656 阅读 · 0 评论 -
Python爬虫学习笔记-第十七课(多线程与爬虫)
多线程与爬虫高清壁纸中不同像素尺寸对应的标签如下图:采用selenium方法获取目标图片的url:import csvimport requestsfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expect原创 2021-01-23 15:15:04 · 349 阅读 · 1 评论 -
Python爬虫学习笔记-第六课(正则表达式下+csv模块的使用)
正则表达式下compile()search()和findall()split()sub()分组案例分析compile()这个是re模块的工厂方法,用于将字符串形式的正则表达式编译为Pattern模式对象,可以实现更加效率的匹配。第二个参数flag是匹配模式,使用compile()完成一次转换后,再次使用还匹配模式的时候就不能进行转换了。经过compile()转换的正则表达式对象也能使用普通的re方法。import re# compile()方法传递匹配模板,返回Pattern对象pat = re.原创 2020-12-22 22:37:26 · 751 阅读 · 0 评论 -
Python爬虫学习笔记-第十四课(Tesseract简介+多线程)
多线程1. Tensor2. 多线程的快速入门2.1 多线程基本概念2.2 多线程的引出3. 通过函数创建线程3.1 主线程与子线程3.2 查看线程的数量3.3 验证子线程的创建与执行4. 线程间的资源竞争1. Tensor2. 多线程的快速入门2.1 多线程基本概念多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。多线程是在同一时间需要完成多项任务时而出现的产物。在日常生活中的许多事情是同时进行的,比如开车的时候,手和脚共同来驾驶汽车,再比如唱歌跳舞也原创 2021-01-13 14:32:12 · 470 阅读 · 0 评论 -
Python爬虫学习笔记-第一课(爬虫前导知识)
模块+文件1. 模块1. 模块简介1. 模块1. 模块简介模块化指将一个完整的程序分解成一个一个的小模块。模块化的优点:方便开发和维护;模块可以复用。原创 2020-12-08 20:33:26 · 300 阅读 · 1 评论 -
Python爬虫学习笔记-第九课(bs4下)
10@TOC1. select()方法的使用除了使用find()和find_all()方法查找数据外,也可以通过css选择器的方式来提取数据,但是需要注意的是使用时要求掌握css语法,css语法参考链接如下:https://www.w3school.com.cn/cssref/css_selectors.asp接下来通过代码演示:# 先给出爱丽丝文html_text = """<html><head><title>The Dormouse's story原创 2021-01-02 20:01:51 · 218 阅读 · 0 评论 -
Python爬虫学习笔记-第三十+三十一课(fiddler工具的使用)
fiddler工具的使用1. UIAutomator2自动化工具基本操作1.1 启动/停止手机APP1. UIAutomator2自动化工具基本操作1.1 启动/停止手机APP在之前的博客中笔者提及了一种查找包名的命令:adb shell pm list packages。在这介绍第二种方案,使用aapt⼯具,在终端输⼊命令:aapt dump badging apk的⽂件名。...原创 2021-03-29 22:52:27 · 277 阅读 · 0 评论 -
Python爬虫学习笔记-第四课(网络请求模块补充)
网络请求模块补充1. cookie1. cookie通过在客户端记录的信息,确定用户身份作用:反爬模拟登陆为什么在网页中能看到数据,而在网页源码中没有?服务器经过多次传输,不是一次性加载完成,没有在网页源码中出现小拓展:Ajax通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。以12306为例,我们并没有重新刷新网页,而是通过点击查询,获取到相应的数据(比如车次列表),这些数据就是通过ajax加载的原创 2020-12-17 22:14:57 · 663 阅读 · 0 评论 -
Python爬虫学习笔记-第五课(正则表达式上)
正则表达式上1. 基本概念2. 正则表达式对Python的支持2.1 普通字符2.2 元字符2.3 预定义匹配字符集2.4 重复匹配2.5 位置匹配和非贪婪匹配3. 正则表达式小练习1. 基本概念正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。应用场景:表单验证,比如注册新用户时填写手机号、邮箱等,网页会对其进行验证;爬虫,解析网页数据时做一些字符的逻辑过滤,以便于更好地获取想原创 2020-12-19 18:28:40 · 139 阅读 · 1 评论 -
Python爬虫学习笔记-第八课(bs4上)
bs4上1. bs4快速入门1.1 基本概念1.2 简单代码示例2. bs4对象种类1. bs4快速入门1.1 基本概念Beautiful Soup 是⼀个可以从HTML或XML文件中提取数据的网页信息提取库。Beautiful Soup 中文文档链接:https://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.htmlhttps://www.crummy.com/software/BeautifulSoup/bs4/do原创 2020-12-26 16:15:02 · 324 阅读 · 1 评论 -
Python爬虫学习笔记-第二十九课(移动端前导知识补充)
移动端前导知识补充1. UIAutomator2自动化工具基本操作1.1 启动/停止手机APP1.2 安装/卸载手机APP1.3 其他操作2. Weditor的前导知识2.1 基本概念3. Weditor定位控件3.1 前导知识3.2 UiSelector定位的使用1. UIAutomator2自动化工具基本操作1.1 启动/停止手机APP在之前的博客中笔者提及了一种查找包名的命令:adb shell pm list packages。在这介绍第二种方案,使用aapt⼯具,在终端输⼊命令:aapt原创 2021-03-24 11:25:28 · 560 阅读 · 0 评论 -
Python爬虫学习笔记-第二十八课(Python与MongoDB交互+移动端前导知识)
移动端前导知识上1. 移动端基本概念1.1 移动端背景1.2 移动端数据的作用1.3 Uiautomator介绍2. UIAutomator2入门2.1 UIAutomator2执行流程2.2 adb的简介和u2的基本操作1. 移动端基本概念1.1 移动端背景随机互联网的发展,数据不仅仅只是存在于PC端。移动端的数据在这几年的占比以及势头发展趋势呈现几何倍数的增长。对于做数据分析、用户画像、市场调研来说,仅仅参考PC端的数据是远远不够的。那么于此同时移动的数据就显得尤为的重要。PC端 -->原创 2021-03-23 00:10:50 · 410 阅读 · 1 评论