最近又重新学习python爬取技术,在爬取别人的小说网站,一般大的网站都会有反爬机制,当访问一定的量的时候会禁ip几秒或者几十秒,我使用随机时间去访问不同的页面都是403的结果。运气好刚好爬完一个小说,运气不好爬完一半又得重新连接(这里主要是我没有做重新连接的代码),由于仅仅是学习为目的,当前并不是要靠这个吃饭,所以就不想搞那么多麻烦事。
爬取到的书籍名跟书籍url地址放入一个txt文件中,本来以为正常遍历就能得到自己想要的结果,结果总是跟你作对。
一、首先读取文件内容
文件结构是二维列表,本来可以用字典的,但如果我多个ip,多线程去跑好像又有新的问题。
二、遍历
可以看到由于readlines会将数据变成列表,所以这里变成了三维数组,遍历出来的数据是字符串,心态有点崩溃呀,如果切割数据成列表,那我直接用read不就可以了吗?还要多此一举干嘛。
虽然可以通过在写入数据添加分割符进行分割,但是这样无疑是浪费性能跟代码多余。
三、解决办法
通过百度查找相关资料,最后找到了这个办法。
使用literal_eval函数,使用前需要导入ast模块