首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

记一次爬虫的心路历程

最近在一个付费网站开了一个会员,这个网站主要是分享一些资源,然后用户通过一定的积分去获取链接的密码才能获取。刚开始的几天,每天去签到挣积分,慢慢地发现积分远远不够用,挣了好几天一次就没了。于是开了一个月的VIP,积分随便用,这种感觉还是人民币玩家爽啊。今天,我突然想用爬虫将资源全部爬下来,这样就可以在会员到期后同样使用。说干就干,拿着Python就冲上去了。经过数次挫败,终于在几个小时后看见了成果。下面总结一下遇到的问题。

模拟登陆

由于网站资源是隐藏的,只有在登录账号之后才能看见,所以第一步就是模拟登陆。模拟登陆用的是selenium驱动火狐浏览器登录,登陆之后将cookie保存下来,然后再用requests访问网站时将cookie添加进去,这样在访问时就可以实现自动登录,也就可以看VIP的影藏内容了,然后就像往常一样用beautifulsoup解析网页提取出需要的资源即可。如下例代码。关于模拟登陆具体操作可参考公众号文章《

爬虫需要登录怎么办?这份python登录代码请收下

读写txt文件

Python在读写文件时要设置编码格式,py文件默认是ASCII编码,中文在显示时需要做一个ASCII到系统默认编码的转换,然后再写入的时候进行encode成对应想要的编码类型,这样可以保证源文件的编码方式不会改变,且中文不会乱码。如下例读写文件代码:

写入txt

读取文件

python打开文件的几种模式:

‘r’:只读(缺省。如果文件不存在,则抛出错误)

‘w’:只写(如果文件不存在,则自动创建文件)

‘a’:附加到文件末尾

‘r+’:读写

beautifulsoup与正则表达式

在进行解析网页时,由于以前用的都是beautifulsoup,但在通过类名查找时路径找的比较麻烦,所以想试试正则表达式,在找好教程后找了一个网页试试发现速度太慢,可能是刚开始用不太会,对于不太规则的网站来说有时候匹配不出来。所以最后还是选择beautifulsoup。对于Beautifulsoup、Xpath和正则表达式三种信息提取的方法,Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能,且Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码,你不需要考虑编码方式。XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。正则表达式描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。个人认为,对于一般不太复杂的网页来说还是比较喜欢用BeautifulSoup。

在解决好上面几个问题后,开始运行我的爬虫,看到结果出来的时候还是很激动的。但过了一会报错了,检查发现访问此时太多ip被限制了。于是换了一个试试爬了一会又被限制,原来每天有固定的次数,看来今天的用完了,只能明天再继续爬了。虽然这次爬虫任务量不大,但收获还是挺多的,通过不断地练习慢慢就会有经验,看到错误就会有解决的思路。希望大家多关注公众号,在实战中成长,在实战中进步。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180723G0PBAL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券