讲了这么多关于python爬虫,今天带你回顾ython爬虫知识

2024-01-28 06:50

本文主要是介绍讲了这么多关于python爬虫,今天带你回顾ython爬虫知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于腾讯云 作者:东风冷雪

( 想要学习Python?Python学习交流群:1039649593,满足你的需求,资料都已经上传群文件流,可以自行下载!还有海量最新2020python学习资料。 )
在这里插入图片描述

最常用的requests库, 通过requests对象的get方法,获取一个response对象。jsp的东西。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其中timeout,proxies,headers,cookies,verify,是我用到过的东西。

response对象的方法和属性
text属性,属于字符流,获取文字。
content属性,二进制,获取图片,文件等

hashlib
摘要算法简介
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。

什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。

举个例子,你写了一篇文章,内容是一个字符串’how to use python hashlib - by Michael’,并附上这篇文章的摘要是’2d73d4f15c0db7f5ecb321b6a65e5d6d’。如果有人篡改了你的文章,并发表为’how to use python hashlib - by Bob’,你可以一下子指出Bob篡改了你的文章,因为根据’how to use python hashlib - by Bob’计算出的摘要不同于原始文章的摘要。

可见,摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过。

摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难。而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同。

def get_MD5(st="alice"):md5=hashlib.md5()md5.update(st.encode(encoding="utf-8"))print(md5.hexdigest())get_MD5()

代理和头部处理

def get_html(url):headers = {'Accept': '*/*','Accept-Language': 'en-US,en;q=0.8','Cache-Control': 'max-age=0','User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36','Connection': 'keep-alive','Referer': 'http://www.baidu.com/'}proxy = [{'https': 'http://yx827w:yx827w@123.249.47.2:888'},{'https': 'http://yx827w:yx827w@123.249.47.3:888'},{'https': 'http://yx827w:yx827w@123.249.47.4:888'},{'https': 'http://yx827w:yx827w@123.249.47.5:888'},{'https': 'http://yx827w:yx827w@123.249.47.6:888'},{'https': 'http://yx827w:yx827w@123.249.47.7:888'},{'https': 'http://yx827w:yx827w@123.249.47.8:888'},{'https': 'http://yx827w:yx827w@123.249.47.9:888'},{'https': 'http://yx827w:yx827w@123.249.47.10:888'},{'https': 'http://yx827w:yx827w@123.249.47.11:888'},{'https': 'http://yx827w:yx827w@123.249.47.13:888'},{'https': 'http://yx827w:yx827w@123.249.47.14:888'},{'https': 'http://yx827w:yx827w@123.249.47.15:888'},{'https': 'http://yx827w:yx827w@123.249.47.16:888'},{'https': 'http://yx827w:yx827w@123.249.47.17:888'},{'https': 'http://yx827w:yx827w@123.249.47.18:888'},{'https': 'http://yx827w:yx827w@123.249.47.19:888'},{'https': 'http://yx827w:yx827w@123.249.47.20:888'},{'https': 'http://yx827w:yx827w@123.249.47.21:888'},{'https': 'http://yx827w:yx827w@123.249.47.22:888'},{'https': 'http://yx827w:yx827w@123.249.47.23:888'},{'https': 'http://yx827w:yx827w@123.249.47.24:888'},{'https': 'http://yx827w:yx827w@123.249.47.25:888'},{'https': 'http://yx827w:yx827w@123.249.47.26:888'},{'https': 'http://yx827w:yx827w@123.249.47.27:888'},{'https': 'http://yx827w:yx827w@123.249.47.28:888'},{'https': 'http://yx827w:yx827w@123.249.47.29:888'},{'https': 'http://yx827w:yx827w@123.249.47.30:888'},{'https': 'http://yx827w:yx827w@123.249.47.31:888'},{'https': 'http://yx827w:yx827w@123.249.47.32:888'},{'https': 'http://yx827w:yx827w@123.249.47.33:888'},{'https': 'http://yx827w:yx827w@123.249.47.34:888'},{'https': 'http://yx827w:yx827w@123.249.47.35:888'},{'https': 'http://yx827w:yx827w@123.249.47.36:888'},{'https': 'http://yx827w:yx827w@123.249.47.37:888'},{'https': 'http://yx827w:yx827w@123.249.47.38:888'},{'https': 'http://yx827w:yx827w@123.249.47.39:888'},{'https': 'http://yx827w:yx827w@123.249.47.40:888'},{'https': 'http://yx827w:yx827w@123.249.47.41:888'},]pro=random.choice(proxy)print(type(pro))print(pro)res=requests.get(url,headers=head,proxies=pro)html=res.text //返回字符串。print(html)return html

xpath技术

1.0 使用etree的HTML方法获取数据,返回的是一个节点对象

from lxml import etree
html=get_html("https://blog.csdn.net/u014595019/article/details/51884529")
print(html)
page=etree.HTML(html)
print(type(page),page)
xp='//*[@id="mainBox"]/main/div[1]/div/div/div[2]/div[1]/span[2]'
readnum=page.xpath(xp)for a in readnum:print(a.attrib)print(a.text)print(a.get("class"))

结果如下

<class 'lxml.etree._Element'> <Element html at 0x47a7288>
{'class': 'read-count'}
阅读数:40927
read-count

这篇关于讲了这么多关于python爬虫,今天带你回顾ython爬虫知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/652815

相关文章

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图