请求调查安装和测试
请求-CACHE模块是请求模块的扩展名,可为请求模块提供持久性缓存支持。如果请求模块将重复的请求发送到URL,则请求-Cache模块将自动确定当前网络请求是否有缓存。可以减少网络资源的次数以避免重复的请求,从而避免变相的某些反攀登机制。
阐明
无论您是否使用Anaconda,都需要单独安装请求-Cache模块,因为Anaconda不包括模块。
缓存应用程序
调用install_cache()函数以实现请求cache请求。语法格式如下:
install_cache()函数包含多个参数,每个参数的含义如下:
§CACHE_NAME:缓存文件的名称,默认为缓存
§后端:指示设置高速缓存的存储机制,默认值无,这意味着SQLITE使用SQLITE使用SQLITE进行存储
§expire_after:指示设置缓存的有效时间,默认值无,这意味着永久有效
§允许_codes:表示设置状态代码,默认值为200
§允许_Methods:指示一个设置请求方法,默认值得获取,表明只能获取请求才能产生缓存
§会session_factory:指示缓存执行的对象需要
§** backend_options:如果缓存存储方法为sqlite,mongo,redis数据库,则该参数表示设置数据库设置数据库的连接方法。
当使用install_cache()函数实现请求缓存时,通常不需要单独设置任何参数,只需使用默认参数即可。确定是否存在缓存代码如下:
程序运行结果如下:
对于反捕获措施,在多个请求中设置延迟是一个不错的选择。因此,请求-CACHE模块可以使用自定义钩函数来合理确定是否需要延迟操作。示例代码如下:
程序运行结果:
第一个运行结果:
等待2秒
第二个请求结果
第二个请求有缓存
从上述操作结果可以通过配置钩函数实现:在第一个请求中,由于没有请求缓存而执行2秒;第二个请求未执行2秒的延迟,输出是否输出是否有请求缓存为true。
阐明
请求-CACHE模块支持4种不同的存储机制,即Money,Sqlite,MongoDB和Redid。具体描述如下:
§内存:缓存以词典的形式存储在内存中。程序运行后,缓存将被销毁
§sqlite:在SQLite数据库中保持缓存
§MongoDB:在MongoDB数据库中保持缓存
§Redis:将缓存存储在Redis数据库中
当使用requests-cache模块指定其他存储机制时,您只需要在install_cache()函数中分配后端参数。设置方法如下:
将存储机制设置为MongoDB和Redis数据库时,您需要提取相应的操作模块和数据库。安装模块的命令如下:
强大的请求-HTML模块
请求html模块是订购模块的兄弟,并由同一开发人员开发。用于JavaScript。
使用请求-HTML模块实现网络请求
§1。get()请求
该模块由“ PIP Install requests-HTML”命令安装,然后在Requests-HTML模块中导入HTMLSession类,然后需要创建HTML Session对象。
程序运行结果如下:
§2,post()请求
实施网络请求时,邮政请求也是一种更常见的请求方法。使用请求-HTML来实现POST请求和请求实现方法。,示例代码如下:
程序运行结果如下:
从上面的运行结果中,您不仅可以看到与表单相对应的表单的内容,还可以看到与用户代理相对应的值。当请求模块发送网络请求(python-requeasts/2.27.1)时,这不是返回的默认值,而是一个真实的浏览器请求标头信息,该信息与请求模块发送的网络请求有关。
§3。修改请求标题信息
当涉及请求标题信息时,请求-HTML模块可以通过指定标题参数来通过默认浏览器请求标头信息进行修改。请求标题信息的关键代码如下:
§请求html模块与Useragent类一起添加,该类使用此类实现随机生成请求标头。示例代码如下:
程序运行结果如下:
评论
上述操作是在Anaconda的木星笔记本下运行的。PyCharm报告错误,应该是解释器的问题。
数据提取
过去使用“请求模块”实施crawler程序时,它还需要配置合作伙伴来分析其HTML代码。支持XPath节点提取方法。
?1。CSS选择器
CSS选择器需要使用HTML Find()方法。此方法包含5个参数。语法格式和参数含义如下:
§选择器:使用CSS选择器找到网页元素
§包含:通过指定文本获取网页元素
§干净:是否要清除HTML
以上是该共享的所有内容。如果您想了解更多信息,请转到公共帐户:Python编程学习圈,每日干货共享
原始:https://juejin.cn/post/7101137685284143134