要 求: 爬取歌星演员的信息 写入excel
入口URL:http://www.mingxing.com/list/neidi
检索URL:http://www.baidu.com/item
显而易见,用检索url搜索杨幂,然后查看页面源代码,基本上可以看到所有的信息,并没有通过js再生成的新内容,直接进行抓取即可。
分析页面结构之后,步骤:
1.获取所有的明星列表
2.根据明星列表,获取单个明星的名字
3.根据明星名字去获取具体的信息
4.根据明星的属性 写入EXCEL
在爬取某个具体的信息时:
1.根据正则截取信息所在的大概片断 <div class ="name">..info..</div>
2.获得info对应的片断后,再根据正则截取所需要的字段
了解思路后,之后就是调API的工作了,不过遇到了一些问题:
1.拼接中文字符串时,需要对字符串进行编码,中文需要变成字母,这样才能变成ASCII码被HTTP所理解。
2.正则表达式有点难,建议先去看一下python的正则表达式的说明。
3.有些信息抓取过来解析时可能没有规律,很难利用正则解析,这个时候可以先将html去除,然后再根据某些分割符进行去杂洗净。
基本完成后,还可以改进的一些方面:
1.解析速度不是很快,可以在多线程或者是解析上优化
2.解析时,偶尔会出现停顿的现象,可以考虑解析多少次后换个代理
3.可视化数据
代码的主要结构
由于代码比较多,就不贴了,主要分为这几块:
1.类的定义
2.流程方法
3.节点信息的提取方法
4.辅助方法
5.主方法
具体看代码吧:https://github.com/hypnosia6220/starSpider/
备注:成就这一属性,数据去杂还有点问题