爬虫心得

入职公司已经数周,因为写了不少爬虫,对爬虫的代码有些心得,因此记录一下。
一、获取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、存储到数据库中

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值