爬虫项目化
1.爬取有效信息:
1.例如YouTube这种容易找到videoId但是在YouTube网页中视频链接真的超级难找的,可以借助第三方网页,但是尝试了几个,比如en.savefrom.cn也不太好找,后来在https://youtubemultidownloader.com/中可以比较方便找到视频的链接,所以就在YouTube上搜索关键词,然后获取到videoId后在第三方网页中进行下载,这样还可以避免被YouTube封IP。
2.图片、视频等的下载链接往往会在JS中出现,则可以直接用json.loads()方式可以载入形成字典,然后逐层解析。当然也有在一些长篇的内容中出现个var什么之后带个JS的,那就可以用re正则匹配一下,这时候一定确认好整个JS尾巴上的是}后边是怎样的格式。因为某次我把,看成;弄了老半天奇怪怎么搞不出来。
3.例如qq空间这样的不太好爬的网站,一个是需要登录,登录前貌似cookies不太好获得。
a.可以用selenium模拟登陆后获得cookies,然后退出在cookies存在时间内进行爬取。
b.可以人工登录后,复制cookies后配置到爬虫环境中,即可以在本次实现爬取。
4.在调试时,先将try-except去掉,知道哪里存在问题,然后调整完之后,再回复try-except使得程序更稳健长时间运行。
5.下载数据时需要进行文件名与文件类型的统一化。
6.稳定性测试。
2.新建数据库去重:
1.新建数据库,目前暂时用sqlite3,因为安装方便且性能暂时还是够用。
2.将文件夹下的文件(名)加入到数据库,以名字作为主键,可以避免同名存在。
3.在数据库下,在获取链接后,添加进入数据库,若有同名存在则跳过下载。
4.稳定性测试。
3.加入线程,稳定性测试:
1.加入线程的位置现在暂时选在下载过程中。
2.选择加入的线程数量,使得下载速度是最快的。即线程优化。
3.稳定性测试。包括长时间运行容错性。
4.配置文件使得产品易于使用:
1.文件比如关键词、搜索广度等进行单独文件配置,使得其他人在使用时能友好。
2.稳定性测试。包括关键词的格式容错度如何,输入数值是否造成不可运行。