Skip to main content

Posts

Showing posts from July, 2016

Python爬虫相关笔记

前段时间尝试用爬虫做个差评信息平台“MUSEE”,对折腾Python爬虫的一些过程记录下。 资源调研 资源调研主要是做对于要爬的线上数据进行调研,弄清楚站点的URL、数据链接、数据标签等,便于后续的数据抓取。 日常用google chrome比较多,通过F12 Development Tool 分析页面请求过程。以爬tmall的用户评价为例,打开任何一个商品链接,在页面加载过程通过监控 network 刷出来的内容,通常一大堆的东西很难区分出哪个内容加载的评论数据,这里有个小技巧,点击下一页在页面加载下一页评论的过程中,在新加载的数据部分更容易发现目标。如下图,就是前两页评论的数据: 多刷几页会发现商品的评论数据链接地址格则比较简单,通过指定“currentPage=x”进行翻页,tmall的评论数据格式比较友好,json内的所有数据清晰可见,例如;itemId是商品id,sellerid是卖家id,currentPageNum是页面号,conten是商品评价内容 … 爬页面 爬页面主要是通过模拟页面请求将需要的web内容抓出来(主要是html数据),用到Python的urllib2 模块。urllib2 用一个request对象来映射web访问请求,通过urlopen函数将请求转成可操作的文件对象。 http请求 大部分用到的是http请求。 ftp 请求 主要是爬图片或其它文件用。 异常的处理,常见HTTP状态码: "100" : Continue "200" : OK "403" : Forbidden "404" : Not Found "502" : Bad Gateway Timeout 设置 爬的时候根据实际情况,注意合理设置timeout,避免网站响应太慢造成的影响 扣内容 类似ps的抠图一样,也需要从整个页面html文件中扣出所需的有效数据。扣内容主要用到re模块以及恰当的匹配规则。 re模块 使用re模块(re.findall ),的一般步骤是: 将正则表达式的字符串形式编译为Pattern实例 用Pattern实例处理文本并获得匹配结果(一个Match实例) 用Match实例获得信息,再进行其他的操作 规则匹配 正则表达式,是做规则匹配的重