
python爬虫学习
爬虫模块
慢羊羊6379.*?
有问题私信我,如果有项目或者设计也欢迎沟通
展开
-
python爬虫一:爬虫简介
1、通讯协议1.1 端口①找到对方ip② 数据要发送到对⽅指定的应⽤程序上。为了标识这些应⽤程序,所以给这些 ⽹络应⽤程序都⽤数字进⾏了标识。为了⽅便称呼这个数字,叫做 端⼝。这⾥ 的端⼝ 我们⼀般都叫做 ‘逻辑端⼝’③定义通讯规则。这个通讯规则我们⼀般称之为协议1.2 通讯协议①国际组织定义了通⽤的通信协议 TCP/IP协议。②所谓协议就是指计算机通信⽹络中两台计算机之间进⾏通信所必须共同遵守的规定或规则。③HTTP⼜叫做超⽂本传输协议(是⼀种通信协议) HTTP 它的端⼝是 80。htt原创 2020-07-12 13:16:35 · 951 阅读 · 0 评论 -
python爬虫二:requests以及urllib模块的使用
1、urllib.request模块1.1版本python2 :urllib2、urllibpython3 :把urllib和urllib2合并,urllib.request1.2常用方法urllib.request.urlopen(“⽹址”) 作⽤ :向⽹站发起⼀个请求并获取响应字节流 = response.read()<class ‘bytes’>二进制字节流转化为字符串用decode解码<class ‘str’>字符串 = response.read().原创 2020-07-16 14:29:09 · 1131 阅读 · 0 评论 -
Python爬虫三:正则表达式的使用大全
1、正则表达式的简介1.1概念正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定 字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符 串”用来表达对字符串的一种过滤逻辑简而言之就是数据筛选过滤1.2正则表达式的应用场景①表单验证(例如 : 手机号、邮箱、身份证… )② 爬虫2、python对正则表达式的支持2.1普通字符字母、数字、汉字、下划线、以及没有特殊定义的符号,都是"普通字符"正则表达式中的普通字符,在匹配的时候,只匹配与自身相同的一个内容(表达式或原创 2020-07-18 08:26:31 · 447 阅读 · 0 评论 -
python爬虫四:xpath的安装使用以及lxml模块
1、xpath的介绍1.1基本概念XPath(XML Path Language)是一种XML的查询语言,他能在XML树状结构中寻找节点。XPath 用于在 XML 文档中通过元素和属性进行导航xml是一种标记语法的文本格式,xpath可以方便的定位xml中的元素和其中的属性值。lxml是python中的一个包,这个包中包含了将html文本转成xml对象,和对对象执行xpath的功能1.2节点的关系xml_content = '''<bookstore><book>原创 2020-07-22 09:42:20 · 1491 阅读 · 0 评论 -
python爬虫五:beautifulsoup4的安装使用
1、bs4简介1.1概念Beautiful Soup 是一个可以从HTML或XML文件中提取数据的网页信息提取库1.2安装先安装它的依赖模块(lxml)再安装(bs4)pip install lxml —>pip install bs4(最基本的安装方法如果出了问题可以参考如何导入第三方库)2、bs4的基本使用from bs4 import BeautifulSouphtml = """<html><head><title>The Dormouse原创 2020-07-26 08:24:31 · 833 阅读 · 0 评论 -
python爬虫六:js2py以及selenium的使用
1、js2py简介http://www.porters.vip/verify/sign/ # 案例查看Python中执行JS代码,通常两个库:js2py,pyexecjsjs2py是纯python实现的库,用于在python中运行js代码,本质上是将js代码翻译成python代码js2py安装 pip install js2py1.1快速入门import js2pyprint(js2py.eval_js('console.log("hello wrold")'))#括号内的为js语法可为语句可原创 2020-08-02 08:33:49 · 636 阅读 · 2 评论 -
python爬虫六(副本):selenium的使用
1、利用cookies登录qq空间获得源码1.1直接利用python数据格式获得cookie模拟登录from selenium import webdriverimport timeimport requestsdriver = webdriver.Chrome()driver.get('https://xui.ptlogin2.qq.com/cgi-bin/xlogin?proxy_url=https%3A//qzs.qq.com/qzone/v6/portal/proxy.html&原创 2020-08-07 10:51:50 · 465 阅读 · 0 评论 -
python爬虫七:图新验证码的识别
1、Tesseract安装与简介阻碍我们爬虫的。有时候正是在登录或者请求一些数据时候的图形验证码。因此这里我们讲解一种能将图片翻译成文字的技术。将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition),简写为OCR。实现OCR的库不是很多,特别是开源的。因为这块存在一定的技术壁垒(需要大量的数据、算法、机器学习、深度学习知识等),并且如果做好了具有很高的商业价值。因此开源的比较少。这里介绍一个比较优秀的图像识别开源库:Tesseract。Tesseract是一原创 2020-08-09 09:03:24 · 325 阅读 · 0 评论 -
python爬虫八:多任务线程
1、多线程的基本介绍有很多的场景中的事情是同时进行的,比如开车的时候 手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的1.1 程序中模拟多任务import timedef sing(): for i in range(3): print("正在唱歌...%d"%i) time.sleep(1)def dance(): for i in range(3): print("正在跳舞...%d"%i) time.sleep原创 2020-08-09 10:11:39 · 272 阅读 · 0 评论 -
python爬虫九:多线程爬虫
1、多线程爬虫生产者和消费者模式是多线程开发中常见的一种模式。通过生产者和消费者模式,可以让代码达到高内聚低耦合的目标,线程管理更加方便,程序分工更加明确。生产者的线程专门用来生产一些数据,然后存放到容器中(中间变量)。消费者在从这个中间的容器中取出数据进行消费1.1Lock版的生产者和消费者gMoney = 0gTime = 0gLock = threading.Lock()class Product(threading.Thread): # global gMoney,gTime原创 2020-08-14 11:20:03 · 261 阅读 · 0 评论 -
python爬虫十:多任务进程
1、进程介绍进程:正在执行的程序程序:没有执行的代码,是一个静态的import multiprocessingimport timedef demo1(): while True: print('我是进程1....') time.sleep(1)def demo2(): while True: print('我是进程2....') time.sleep(1)def main(): t1 = mu原创 2020-08-16 10:27:55 · 138 阅读 · 0 评论 -
python爬虫十一:认识Scrapy框架
1、Scrapy介绍1.1什么是Scrapyscrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,只需要实现少量的代码就能够快速的抓取,scrapy使用了Twisted异步网络框架,可以加快下载速度1.2Scrapy工作流程名称作用Scrapy Engine(引擎)总指挥:负责数据和信号在不同模块之间的传递scheduler(调度器)一个队列,存放引擎发过来的requests请求Downloader(下载器)下载引擎发过来的requests请求原创 2020-08-19 09:52:24 · 187 阅读 · 0 评论 -
python爬虫十二:初步使用Scrapy框架爬取数据
1、通过pipelines操作拿到的数据要点一:爬虫文件必须通过关键字yield生成器才能与pipelines建立链接才可以操作,当运行爬虫文件之后执行的顺序如下图简介,如果重写模块或者内部方法可能会造成麻烦,往下翻阅可以看到open_spider()之后,开始执行爬虫文件close_spider()关闭爬虫文件,scrapy之间执行的顺序类似与函数嵌套的执行,即爬虫模块嵌套pipeline模块要点二:先打开文件,在操作文件,关闭文件,需要注意的是多管道之间的优先级是setting当中建立管道时数字原创 2020-08-21 10:40:56 · 698 阅读 · 0 评论 -
python爬虫十三:详细了解scrapy
1、Scrapy log信息的认知2019-01-19 09:50:48 [scrapy.utils.log] INFO: Scrapy 1.5.1 started (bot: tencent)2019-01-19 09:50:48 [scrapy.utils.log] INFO: Versions: lxml 4.2.5.0, libxml2 2.9.5, cssselect 1.0.3, parsel 1.5.0, w3lib 1.19.0, Twisted 18.9.0, Python 3.6.原创 2020-08-23 14:47:50 · 632 阅读 · 2 评论 -
python爬虫十四:scrapy crawlspider的介绍及使用
1、scrapy crawlspider的介绍他有着自动提取规则,内部封装的只要我们爬取的数据有规律并且在网页源码中,就可以实现他的自动抓取,我们不用管具体交给它做,下面会有案例展示之前的代码中,我们有很大一部分时间在寻找下一页的URL地址或者内容的URL地址上面,这个过程能更简单一些吗?思路:1.从response中提取所有的li标签对应的URL地址2.自动的构造自己resquests请求,发送给引擎目标:通过爬虫了解crawlspider的使用生成crawlspider的命令:scrapy原创 2020-08-26 09:08:04 · 883 阅读 · 0 评论 -
python爬虫十五:scrapy案例
1、登录人人网携带cookies模拟登录要将cookie通过字典推导式转化为字典的格式不然无法运用get请求import scrapyclass RenSpider(scrapy.Spider): name = 'rrrr' allowed_domains = ['renren.com'] start_urls = ['http://www.renren.com/975006052/profile'] cookies='anonymid=kdfgrmqf92dw原创 2020-08-28 09:33:32 · 403 阅读 · 0 评论 -
python爬虫十六:scrapy终章
1、scrapy下载中间件中间件中有两个类一个用于爬虫,一个用于下载,爬虫几乎用spider就能实现,重要的是下载中间件1.1下载中间件的含义下载中间件是scrapy提供用于用于在爬虫过程中可修改Request和Response,用于扩展scrapy的功能1.2下载中间件的内容主要用到request与response1.2.1process_request(self, request, spider)当每个request通过下载中间件时,该方法被调用,优先级越高的中间件,越先调用;该方法应该原创 2020-09-02 16:31:43 · 279 阅读 · 0 评论 -
python爬虫十七:python操作redis,将爬取的数据存入redis中
1、python操作redis①导入redis库pip install redis -i https://pypi.douban.com/simple②python连接redis直接操作数据库(别忘了书写pyton代码要符合pep8规则哦)import redis# 连接的redis的两方式# redis.Redis()# redis.StrictRedis()观察源码可知两种方式相等class RedisTest(): def __init__(self): se原创 2020-09-09 08:44:30 · 2670 阅读 · 0 评论 -
python爬虫十八:mongodb的介绍
1、关系型数据库非关系型数据库1.1他们之间的区别1.1.1数据存储方式不同关系型数据库是表格式的,数据储存在数据表的行和列中,数据表格可以彼此关联协作储存,很容易提取数据;非关系型数据不适合存储在数据表的行和列中,它通常是存储在数据集中,数据的类型是选择数据存储和提取方式的首要因素1.1.2扩展方式不同数据存储在关系表中,操作的性能瓶颈可能涉及很多个表,所以要支持更多并发量,SQL数据库是纵向扩展提高资源地物理机的性能,提高处理能力,使用速度更快的计算机,这样处理相同的数据集就更快了。而NoS原创 2020-09-13 07:39:05 · 308 阅读 · 0 评论 -
python爬虫十九:mongodb的使用
1、mongodb在数据库层面上的基本命令查看有哪些数据库:show dbs切换数据库use 数据库查看当前数据库db注意创建数据库的时候如果不添加数据是看不见的,但是可以切换,往该数据库中添加信息之后,该数据可以被db到删除数据库db创建并且自动切换数据库use 数据库:有的化直接切换查看数据库中的表(集合)show tables/show collections2、mongodb在集合层面上的基本命令查看集合show tables...原创 2020-09-17 11:31:16 · 424 阅读 · 0 评论 -
python爬虫二十:mongodb的高级使用以及python操作mongodb
1、聚合聚合:聚合是基于数据处理的聚合管道,每个文档通过一个由多个阶段组成的管道,可以对每个阶段的管道进行分组、过滤等功能,然后经过一系列的处理,输出相应的结果测试数据db.stu.insert([{name:"a", hometown: '东北', age: 20, gender: true},{name:"b", hometown: '长沙', age: 18, gender: false},{name:"c ", hometown: '武汉', age: 18, gender: false},{n原创 2020-09-20 18:12:50 · 424 阅读 · 0 评论 -
python爬虫二十一:app移动端数据抓取(一)
1、移动端app数据1.1为什么要抓取移动端数据随着时代的发展,pc—>移动端—>大数据—>AI(人工智能未来)对于做数据分析、用户画像、市场调研来说仅仅参考PC端的数据是远远不够的。那么于此同时移动的数据就显得尤为的重要1.2移动端抓取数据注意事项①可能需要反编译,分成出加密算法抓取信息②可能加固,需要脱壳③需要破解各式各样的签名,证书,设备绑定方法,找到隐藏的加密算法2、UIAutomator2.1UIAutomator的简介UIAutomator是google提供的原创 2020-09-23 18:43:48 · 3335 阅读 · 4 评论 -
python爬虫二十二:使用weditor定位app控件(二)
1、weditor1.1什么是weditor定位app控件的一种工具,相当于selenium,可以快速定位app以及清晰的看到他们之间的层级关系,抓取app数据之前可以通过它先了解app的结构以及一些信息(就相当于饭前洗手虽然没有必要关联,但是有助于你的健康)它虽然对抓取app数据没太大相关,但可以帮助了解app的组成以及实现它的逻辑1.2怎么使用weditor①安装adb②安装uiautomator2以及weditorpip install --upgrade --pre uiautomato原创 2020-10-03 18:10:04 · 3524 阅读 · 2 评论 -
python爬虫二十四:js逆向破解(一)
1、环境搭建通过python代码模拟js去生成加密数据完成数据破解,需要用到PyExecJS模块①安装模块pip install pyexecjs通过模块的方法来读取js代码,也可以用js2py(不更新维护了)、selenium(driver.wxecute_script(js代码))去执行js文件,这里以pyexecjs为例②python调用js代码的时候需要nodejs的环境(安装步骤如下)nodejs下载地址:点解对应版本下载,我选择64位msi选择msi它可以自动配置环境变量,不用手动配原创 2020-10-17 20:04:52 · 1762 阅读 · 1 评论 -
python爬虫二十三:使用fiddler抓取app数据(三)
1、什么是fiddlerFiddler是⼀个http协议调试代理⼯具,它能够记录并检查所有电脑和互联网之间的http、https、stp等通讯,它⽀持IE、Chrome、FireFox等等浏览器,可以在phone、pad等移动设备进⾏连接不仅可以做web端也可以做移动端的数据抓取缺点:①他只支持http、https、stp等通讯协议的数据其他的协议不支持②无法请求响应超过2G的数据2、fiddler简介2.1fiddler的安装fiddler的下载:下载链接双击安装包,安装很简单跟qq一样原创 2020-10-11 21:50:36 · 1183 阅读 · 0 评论 -
python爬虫二十五:js逆向破解(二)
1、SRA算法①含义:RSA算法一直是最广为使用的"非对称加密算法",以三位数学家的名称命名,只要有计算机网络的地方,就有RSA算法,它的加密如下(详情百度,主要讲如何破解它)②登录爱奇艺就会遇到以SRA加密的密码(实现模拟登录爱奇艺)点击元素选择器定位到登录框发现他是一个内联框架,点击进入分析哪些数据是加密的,哪些数据是随机变化的,哪些数据是data携带可有可无的参数,发现只有密码是加密的,其余的是固定和无用参数寻找加密方法,点击search搜索想要查询的数据,或者悬停鼠标一个一个找,如果原创 2020-10-22 11:19:29 · 1026 阅读 · 0 评论 -
python爬虫二十六:css反爬及文字混淆
1、爬取自如网价格①网址:自如网点击查看,进入后点击租房,接下来就是爬取房价信息,以及其它想要提取的数据②分析流程:他所有的内容均在网页源代码中,不用去寻找api接口,皆大欢喜,但它的价格是css加密过的,即点击styles中的不显示红框中的内容,它的价格就会发生变化,复制它的url地址,会发现是一张雪碧图(爬取的价格图片背景像雪碧,所以叫做雪碧图),它的价格是根据像素点的变化,定位雪碧图的不同数字显示的③实现思路:获得图片,通过图片识别,将像素点(偏移量)根雪碧图的数字一一对应,爬取像素点(偏移量)原创 2020-10-28 19:22:34 · 888 阅读 · 0 评论