反爬以及解决方法、爬取网站的流程、注意事项、可迭代对象和迭代器

mac2024-08-06  161

一、爬取网站的流程

确定网站那个url是数据的来源简要分析一下网站结构,查看数据一般放在哪里查看是否有分页,解决分页的问题发送请求,查看response.text里面是否有想要的数据内容如果有数据,就用响应的提取数据的方法提取数据保存

二、注意事项:

刚开做爬虫项目,先不要用类去做,只需要关注数据的来源等问题的解决,不要关注类结构的设计。

三、可迭代对象和迭代器

可迭代对象就是有__iter__属性的对象

迭代器:有__next__属性的对象

iter(可迭代对象)可以转换成迭代器

可迭代对象有哪些:

list

dict

tuple

str

bytes

set

迭代器

生成器

文件流

如何打印一个文件同时输出行号。 fp = open(‘shabei_spider.py’,‘r’,encoding=‘utf-8’) print(fp) #如何输出行号。 for i,c in enumerate(fp,1): print(i,c)

四、反爬

(一)反爬措施以及应对措施

反爬策略:

通过use_agent客户端表示来判断是否是爬虫 解决办法:封装user_agent请求头

通过访问频率来判断 解决办法:设置爬取间隔 a = random.randint(5) time.sleep(a)

封ip 解决办法:设置代理ip

页面内容无法直接获取数据,页面都是js代码 selenium+phantomjs可以获取页面数据

xpath://div[@class=“abc”]/p[@id=“p1”] css选择器:div.abc p #p1

(二)动态html页面的处理方法

常见的页面技术

js html使我们页面的骨架,css是页面装饰,js是页面的灵魂jquery jquery是一个js库,可以使js代码更加简化ajax:web页面的异步请求,是一种技术DHTML

(三)selenium+phantomjs就可以处理这种问题

selenium:是web自动测试工具 pantomjs:是一个无界面的浏览器。可以运行js代码,拿到页面数据selenium和phantomjs的下载 pip install selenium==2.48.0 百度phantomjs镜像phantomjs环境变量的配置 有第三方插件的,都可以放在anaconda/scripts文件下面chromedriver chromedriver镜像,注意和自己的chrome浏览器版本对应
最新回复(0)