爬虫心得

   日期:2020-10-03     浏览:262    评论:0    
核心提示:入职公司已经数周,因为写了不少爬虫,对爬虫的代码有些心得,因此记录一下。一、获取html页面的方法通过python获取页面的常用方法有requests和selenium方法,当然使用python自带的urllib也可以获取html页面,但是其使用逻辑实在是复杂,相比之下,requests方法更像是给人类使用的方法。1、requests可以通过get或者post来获取页面信息,对于使用GET方式的页面,可以使用requests.get(url)来获取相应的网页源代码。POST方式也是常见的网页访问方法,

入职公司已经数周,因为写了不少爬虫,对爬虫的代码有些心得,因此记录一下。
一、获取html页面的方法
通过python获取页面的常用方法有requests和selenium方法,当然使用python自带的urllib也可以获取html页面,但是其使用逻辑实在是复杂,相比之下,requests方法更像是给人类使用的方法。
1、requests可以通过get或者post来获取页面信息,对于使用GET方式的页面,可以使用requests.get(url)来获取相应的网页源代码。POST方式也是常见的网页访问方法,有些网页只能通过POST方法来访问,如果此时采用GET方法访问的话,网站就会返回错误的信息,使用POST方法,通常需要传入字典或者JSON格式的数据,这个数据需要通过游览器的network观察来得到其格式类型。
2、selenium原本是一种自动化的测试工具,其也可以解决一些requests无法解决的问题,selenium在使用中,需要先下载相应的游览器驱动,放置于游览器根目录和python根目录中,并添加到环境变量中去。之后,便可以通过selenium来控制游览器的行为,selenium在某种程度上相当于模拟了人上网的行为,因为代码逻辑更容易理解。
二、html页面的解析
获取到html页面后,如果定位到需要的内容呢,python提供了多种方法,包括正则表达式、Xpath和Beatiful Soup,包括selenium也提供了一些寻找网页元素的方法。
1、首先从正则表达式说起,对于静态页面来说,正则表达式几乎是万能的存在,可以说,只要精通了正则表达式,爬取静态页面就不在话下了。需要注意的是,正则表达式默认是贪婪匹配,即匹配其所有匹配的最长字符,而在末尾加上?后,则匹配相应的最短字符,一般来说,正则表达式(.*?)可以完成大部分的匹配任务。
2、xpath是一种查询语言,它可以在html树状结构中寻找节点,即一种根据地址找寻内容的语言,xpath是我最喜欢使用的一种方法,因为使用正则表达式时,经常会出现不明原因而无法提取想要的内容的情况,而xpath,利用谷歌游览器提供的工具,可以很好的定位所需内容的位置,使用熟练后,可以大大提高代码的编写效率。
3、Beatiful Soup4即bs4,是python的一个第三方库,可以从html和xml中提取数据,bs4由于是使用python开发,运行速度上比xpath要慢。bs4通过find_all()和find()来查找内容。
三、编码问题
爬虫爬取的内容,有时候会是乱码的情况,需要进行相应的编码处理
四、反爬虫
反爬虫的手段主要包括换headers,随机睡眠时间和使用代理ip
五、存储
1、存储到文本中
2、存储到数据库中

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服