Python爬虫Dota排行榜爬取

1、分析网站打开开发者工具,我们观察到排行榜的数据并没有在doc里doc文档在Javascript里我么可以看到下面代码:ajax的post方法异步请求数据在XHR一栏里,我们找到所请求的数据json存储的数据请求字段为:post请求字段2、伪装浏览器,并将json数据存入excel里面 获取信息 将数据保存到excel中3、结果展示 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群626062078,我们一起学Python!...

python爬虫之数据加密解密

一、什么叫数据加密  数据加密是指利用加密算法和秘钥将明文转变为密文的过程。二、数据加密的方式  1、单向加密  指只能加密数据而不能解密数据,这种加密方式主要是为了保证数据的完整性,常见的加密算法有MD5、sha系列等(位于python内置的hashlib模块中)。  2、对称加密  指数据加密和解密使用相同的秘钥,这种加密方式主要是为了保证数据的机密性,常见的加密算法有DES、AES(位于python第三方库pycrytodomex中)。  3、非对称加密  也叫公钥加密,指数据加密和解密使用不同的密钥,这种加密方式基本不可能被破解,主要用于身份验证等方面,常见的加密算法有DSA、RSA(位于python第三方模块rsa中)。三、加密算法  1、单向加密算法(MD5、sha系列)fromhashlibimportmd5,sha256,sha512m=md5()m.update("123".encode())print(m.hexdigest())#32#202cb962ac59075b964b07152d234b70print(m.digest())#b',xb9bxacYx07[...

python爬虫之字体反爬

一、什么是字体反爬?  字体反爬就是将关键性数据对应于其他Unicode编码,浏览器使用该页面自带的字体文件加载关键性数据,正常显示,而当我们将数据进行复制粘贴、爬取操作时,使用的还是标准的Unicode字符映射,解析后就是干扰性数据,以猫眼电影为例:  上图表明,浏览器正常渲染的数据在调试界面显示为错误的数据,即使我们复制粘贴也是这样(猜测复制粘贴的是Unicode编码)显示,这样就起到了反爬的效果。二、解决方案  1、找到对应的字体文件 点击箭头指向的css文件 箭头指向的链接就是我们要寻找的字体文件,我们必须把这个字体文件下载下来进行分析,找到对应关系  如果字体文件是固定的,我们可以手动分析,然后创建一个映射表就解决了,但是字体文件如果每请求一次就会变化,这种解决方式就不行了。我们刷新一下链接,再下载一个字体文件对比一下,看是否变化了 对比后,不难发现,字体文件完全不同了。  2、绕过字体反爬目前为止,我爬过的数据从来源可以分为PC端数据、移动端Web数据和APP数据,既然PC端有字体反爬,我们可以从移动端尝...
代码星球 代码星球·2020-06-14

python爬虫之selenium+打码平台识别验证码

1、常用的打码平台:超级鹰、打码兔等2、打码平台在识别图形验证码和点触验证码上比较好用  (1)12306点触验证码1fromseleniumimportwebdriver2fromselenium.webdriver.supportimportexpected_conditionsasEC3fromselenium.webdriver.support.waitimportWebDriverWait4fromselenium.webdriver.common.byimportBy5fromselenium.webdriver.common.action_chainsimportActionChains6fromchaojiyingimportChaojiying_Client7fromaccountimportUSERNAME12306,PASSWORD12306,USERNAMECJY,PASSWORDCJY8importtime91011classTrainLogin(object):12def__init__(self,username,password):13self.user...

python爬虫之浅析验证码

一、什么是验证码?  验证码(CAPTCHA)是“CompletelyAutomatedPublicTuringtesttotellComputersandHumansApart”(全自动区分计算机和人类的图灵测试)的缩写。是一种用来区分用户是计算机还是人的公共全自动程序。二、验证码的作用  验证码是一种人机识别手段,最终目的是区分正常用户和机器的操作。可以防止:恶意破解密码、注册、刷票、论坛灌水,防止黑客对用户的密码进行暴力破解。一般是提出一个问题,这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答这个的问题,所以回答出问题的用户就可以被认为是人类。三、验证码类别  验证码自面世以来就一直在更新,迭代。  图形验证码:这类验证码大多是计算机随机产生一个字符串,在把字符串增加噪点、干扰线、变形、重叠、不同颜色、扭曲组成一张图片来增加识别难度。  滑动验证码:也叫行为验证码,比较流行的一种验证码,通过用户的操作行为来完成验证,其中最出名的就是极验。滑动验证码的原理就是使用机器学习中的深度学习技术,根据一些特征来区分是否为正常用户。通过记录...
代码星球 代码星球·2020-06-14

python爬虫之Appium手机APP爬虫

一、Appium工作原理(详情见:https://www.cnblogs.com/sophia194910/p/7515165.html)  Appium的功能其实很简单:监听一个端口,然后接收由client发送来的command,翻译这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些command后把执行结果返回给appiumserver,appiumserver再把执行结果返回给client。在这里client其实就是发起command的设备,一般来说就是我们代码执行的机器,执行appium测试代码的机器。狭义点理解,可以把client理解成是代码,这些代码可以是java/ruby/python/js的,只要它实现了webdriver标准协议就可以。二、Appium环境搭建1、需要用到的软件包如下:(1)node.js(2)JavaSDK(3)AndroidSDK(4)AppiumWindows(5)夜神模拟器(6)Python(7)Appium-python-Client2、node.js(参考:https...

python爬虫-纠正MD5错误认知

m=md5("12345678".encode())print(m.hexdigest())#25d55ad283aa400af464c76d713c07adm=md5("1234".encode())print(m.hexdigest())#81dc9bdb52d04dc20036dbd8313ed055m.update("5678".encode())print(m.hexdigest())#25d55ad283aa400af464c76d713c07adhashlib.md5.update不是替换,是追加。...

Python爬虫-scrapyd

1、什么是scrapyd  Scrapyd是一个服务,用来运行scrapy爬虫的。  它允许你部署你的scrapy项目以及通过HTTPJSON的方式控制你的爬虫。  官方文档:http://scrapyd.readthedocs.org/2、安装scrapyd和scrapyd-client  pipinstallscrapyd(服务器)  pipinstallscrapyd-client(客户端)  安装完成后,在python安装目录的Scripts的文件下有一个scrapyd.exe,在命令行窗口执行后,可以通过访问http://127.0.0.1:6800,进入一个很简单的页面,  执行scrapyd这个命令行,表示服务开启了,     在浏览器中访问这个服务,  上面表示服务端安装成功,现在来安装测试客户端,安装好后,执行scrapyd-deploy来测试是否安装成功,   执行失败,我们来看一下Python的Scripts下面是否有一个scrapyd-client.exe命令,   从图片...
代码星球 代码星球·2020-06-14

python爬虫-scrapy日志

1、scrapy日志介绍 Scrapy的日志系统是实现了对python内置的日志的封装  scrapy也使用python日志级别分类logging.CRITICALlogging.ERROElogging.WARININGlogging.INFOlogging.DEBUG 2、如何在python中使用日志呢?importlogging(1)日志对应的格式字符串(2)创建一个loggerlogger=logging.getLogger("%s_log"%__name__)logger.setLevel(logging.INFO) #设定日志等级(3)创建一个handler,用于写入日志文件fh=logging.FileHandler("test.log",mode="a")fh.setLevel(logging.WARNING)(4)定义handler的输出格式formatter=logging.Formatter("%(asctime)s-%(filename)s[line:%(lineno)d]-%(levelname)s:%(mes...
代码星球 代码星球·2020-06-14

python爬虫-MongoDB安装配置

MongoDB安装配置:  在安装配置MongoDB的过程中遇到了很多问题,现在重新梳理一遍安装流程、遇到的问题及其解决方法  系统版本:Windows10  MongoDB版本:4.2.1  1.下载地址:https://www.mongodb.com/download-center/community  2.安装流程:     在遇到这一步时,点击custom,选择自己想要的安装目录,点击下一步          直到遇见下面安装情景,MongoDBCompass为MongoDB自带的MongoDB可视化     工具,如果想要安装就点选,否则就取消,我这里取消,这个工具是否能成功使用  取决于记得服务器的环境是否成功配置,下面继续按流程来,最后进入复制安装页  面。    在最后安装完成后,可能会遇见这样的错误,原因是你得账户并不是超级管理员,权      限不够,后面在启动时,也会遇到同样的问题,后面再说,当前直接点击忽略,就可以了。  3.配置  在正式配置之前,我们先看一下安装目录的结构:  F...

python爬虫-提取网页数据的三种武器

常用的提取网页数据的工具有三种xpath、css选择器、正则表达式1.xpath  1.1在python中使用xpath必须要下载lxml模块:  lxml官方文档:https://lxml.de/index.html    pipinstalllxml  然后导入:    fromlxmlimportetree  使用:    selector=etree.HTML(html_str)    selector.xpath("xpath语法")  1.2xpath语法  w3cxpath语法:https://www.w3school.com.cn/xpath/index.asp      以上是获取元素的语法,但我们最终的目的是获取元素里面的属性信息或文本信息fromlxmlimportetreehtml_str='''<divclass="example1"><ahref="http://www.baidu.com/"data-id="12345678">百度</a></div><divcl...

python爬虫-smtplib模块发送邮件

1、代码如下:importsmtplibfromemail.messagefromEmailMessage#smtplib模块负责发送邮件服务#email.message模块负责构建邮件,然后交给smtplib发送#定义SMTP服务器地址smtp_server='smtp.163.com'#定义发件人地址from_addr="***********@163.com"#定义登录密码password='**********'#定义收件人to_addr="**********@qq.com"#创建SMTP连接conn=smtplib.SMTP_SSL(smtp_server,465)conn.set_debuglevel(1)conn.login(from_addr,password)#创建邮件对象msg=EmailMessage()#设置邮件内容msg.set_content('你好,我正在测试如何使用python发送电子邮件','plain','utf-8')#设置邮件主题msg['subject']="一封测试smtplib模块的邮件"msg['from']=from_addrmsg[...

python爬虫所遇问题列举

1、通过pythonsocket库来构造请求报文,向服务器发送图片请求时  (1)图片在浏览器请求头中的remoteaddress信息跟通过pythonsocket输出远程连接地址和端口号不一致    RemoteAddress:183.61.138.62:443    raddr=('183.61.138.62',80)    80表示http协议默认端口,443表示https协议默认端口          2、在浏览器中输入图片地址,然后调试Network窗口发现,响应体不是直接返回image文件,而是文档文件    3、及时正确返回包含图片二进制码的响应报文时,为了获得Content-Length(图片的大小),必须将响应行和响应头解码,但是解码在对图片二进制码进行解码时,会报错:    UnicodeDecodeError:'utf-8'codeccan'tdecodebyte0xffinposition516:invalidstartbyte    如何解决?...

Python爬虫 获得淘宝商品评论

  自从写了第一个sina爬虫,便一发不可收拾。进入淘宝评论爬虫正题:  在做这个的时候,也没有深思到底爬取商品评论有什么用,后来,爬下来了数据。觉得这些数据可以用于帮助分析商品的评论,从而为用户选择商品提供一定的可参考数据。   找评论所在真实url:有了前面爬搜狗图片的经验,面对找资料的url这件事,找他的速度是比第一次快了不少。首先进宝贝页面,如图  发现评论与搜狗图片类似,均为动态刷新。因此,F12(开发者选项)>>Notework>>F5(刷新)>>feedRateList(文件名)>>Headers>>复制RequestURL   去除不必要的字段,获得需要的资料(评论)所在url= https://rate.taobao.com/feedRateList.htm?auctionNumId=39595400262&currentPageNum=1猜测url地址为商品id,PageNum为评论的所在页数。因此要把所有页的评论遍历一遍。则应取Num的值递增访问,...

吴裕雄--天生自然PYTHON爬虫:使用Selenium爬取大型电商网站数据

用python爬取动态网页时,普通的requests,urllib2无法实现。例如有些网站点击下一页时,会加载新的内容,但是网页的URL却没有改变(没有传入页码相关的参数),requests、urllib2无法抓取这些动态加载的内容,此时就需要使用Selenium了。  使用Selenium需要选择一个调用的浏览器并下载好对应的驱动,我使用的是Chrome浏览器。将下载好的chromedrive.exe文件复制到系统路径:E:pythonScripts下,如果安装python的时候打path勾的话这个目录就会配置到系统path里了,如果没有的话,请手动把这个路径添加到path路径下。  下载的浏览器驱动也要看清楚对应自己浏览器版本的,如果驱动与浏览器版本不对是会报错了。  chromedriver与chrome浏览器对照表参考:https://blog.csdn.net/huilan_same/article/details/51896672国内不能直接访问Chrome官网,可以在ChromeDriver仓库中下载:http:...
首页上一页...23456...下一页尾页