【Python爬虫(二)】Xpath和CSS选择器
这两个东西简直无语,不常用根本记不住。已经记不清在网上搜过多少教程了,今天就自己写一个教程。
Xpath选择器
XPath 是一种用于在 XML 或 HTML 文档中进行导航和查找元素的语言。
这里咱们使用到最多的就是①,②,③,④,⑥,好吧,基本都用到了,这里还是要掌握的。
调试自己写的Xpath到底对不对:
通过在浏览器的开发者工具中的 “Elements” 或 “Inspect” 面板中使用 XPath 选择器来调试和测试 XPath 表达式的准确性。
选择元素:
选择所有元素://*
选择指定标签的元素://tagname
选择指定 class 的元素://*[@class='classname']
选择指定 id 的元素://*[@id='idname']
精确匹配属性:
通过属性值精确匹配元素://*[@attribute='value']
层级关系选择:
选择父子关系的元素://parent/child
选择所有后代元素://ancestor//descendant
位置选择:
选择第一个匹配的元素: ...
【Python爬虫(一)】爬虫前置问题总结
文章内容部分来自Chatgpt。
了解网站的访问限制
当您想要获取某个网站的数据的时候总要知道一些网站的规则吧,要不然(IP,账号)怎么被封的都不知道。
一般网站会限制什么
访问频率限制:就是控制服务器的负载,防止服务器崩掉
相应的测试:逐渐增加自己的访问频率,观察是否出现访问被限制的情况。最开始可以以较低的访问频率进行测试,例如每分钟只访问一次,然后逐渐增加访问频率。如果在某个阶段发生了访问限制,那么该阶段的访问频率就是网站的限制阈值。
解决方案:控制爬虫的访问频率。
IP地址限制:限制IP
测试:使用不同的IP地址进行访问,观察是否出现了访问被限制的情况。可以通过使用代理服务器或者虚拟专用网络(VPN)来切换IP地址,以模拟不同的访问来源。如果使用不同的IP地址进行访问时出现了访问限制,那么网站可能对IP地址进行了限制。
解决方案:使用proxy远程代理(VPN),或者使用虚拟机。
如何查看自己被ban了
访问错误提示:观察访问被限制时的错误提示信息。有些网站会返回特定的HTTP状态码或者错误信息来指示访问被限制,例如403 Forbidden、429 Too ...
【PythonScript(二)】脚本解析-续
今天只看了一部分,主要还是有关以连接数据库的一部分代码。
Python代码写的还是比较6的,很多东西我是可能写不粗来,不过能看懂,加上之前自己写过工具类,这里大差不差,无非就是表名,数据库名,一些逻辑发生了变化,这里简单记录一下。
当然代码量是比较大的,先从工具类开始记录。
DBHandler数据库工具类
这个类的作用就是连接MySQL数据库,然后在实例化对象之后就可以对MySQL数据库做一些增删改查之类的操作了。
以下方法都需要有日志的产生,所以后面会阐述日志工具类。
关闭连接方法- close方法
将查询到的数据转为DownloadModel对象- query_for_download方法
向表中插入当前时间的数据- update_download_info方法
更新表中时间- update_business_time方法
将查询到的结果封装成一个ExecutorModel对象- query_for_operation方法
更新数据表business_rule_operation中update_time字段和操作人 - update_for_operation方法
更新表bu ...
保留近7天文件且清理旧文件
清理旧文件的脚本
清理(Linux)本地文件,防止磁盘撑爆;此脚本经过测试没问题。
测试截图:(在有Python解释器的服务器上测试就行)
同时在清理文件的基础上添加了删除空文件夹的一个逻辑,代码很简单。
这个脚本需要配合Azkaban或者Oozie或者DS进行调度,才能达到定时清理旧文件的目的。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455# 保留最近7天的文件(linux本地文件 & 递归遍历)import osimport timeimport sys# 定义全局变量接收用户传入的参数,args为列表,args[0]为文件名args = sys.argvdef delete_old_files(directory): """ 传入给定文件目录,删除该目录下时间超过7天的文件,后续会产生空文件夹 :param directory: 要进行处理的文件目录 :ret ...
【PythonScript(一)】脚本解析
Python脚本解析和KeyPoint
接触到的第一个脚本,实际开发周期为一周时间。
脚本的功能已经在代码之前贴上了。
其实这里的Python脚本无非就是用到了一些第三方类库,比如HDFS,Redis,FTP文件服务,还有比如说文件,文件的遍历什么的,把这些东西搞懂这些Python代码基本就没有什么问题了。
手动总结一下:
HDFS相关
首先必须安装HDFS
12345678910# 不指定版本号安装pip install hdfs# 指定版本号安装pip install hdfs==2.7.0# 首先导入hdfs或者from hdfs import InsecureClientimport hdfshdfs_url = 'http://172.17.4.9:9870'
后续操作
创建HDFS连接对象,相当于pymysql中的conn连接对象:link = InsecureClient(hdfs_url)
获取HDFS路径下的所有文件和目录,返回值是一个列表:link.list(path)
创建文件夹:link.makedirs(path)
写文件:link. ...
项目全流程
项目透析
https://www.mubu.com/doc/6pyW5wz3yYq
