python第一个爬虫
来源:互联网 发布:香港大学 知乎 编辑:程序博客网 时间:2024/04/30 00:33
0x01 学了很多还是不会
都说python很好学适合入门,但是我怎么感觉他比JAVA难很多。JAVA学了三个月,完成了毕设(包含socket 通信,多线程,GUI,数据库……),但是同样是学了奖金三个月的python写程序的时候还是不知道该从哪里下手。可能是编译工具的问题?JAVA使用Eclipse的时候敲代码时给出的代码提示和代码补全能够让你几乎不需要记什么东西去敲代码。但是python的pycharm却不能。其动态语言的特性让编译器很难办,因为当传入参数的时候编译工具无法知道传进来的参数是整型?是数值型?亦或者是其他自定义类型。结果导致无法根据参数的类型提示相关的方法与成员变量。可能这就是我敲代码费劲的原因,对python的库了解太少,没有补全不会写程序。
0x02 动手去干
在看过《python 学习手册》和廖雪峰(www.liaoxuefeng.com)的python教程后,决定不再看教程了,动手做。按照中国制造的风格依然是半抄袭半创造的写。都说用python写爬虫方便,小试一下写了一个。参照了一个现成的简单爬虫(http://www.cnblogs.com/fnng/p/3576154.html)和python Document ,制作了爬http://imgur.com首页图片的简单爬虫,用到了正则表达式和file IO。
0x03 代码
__author__ = 'user'import urllib.requestimport sys,osimport redef get_html(url): auth_handler = urllib.request.HTTPBasicAuthHandler() auth_handler.add_password( realm=None, uri='http.html://proxy.neusoft.com:8080', user='', passwd='') opener = urllib.request.build_opener(auth_handler) # urllib.request.install_opener(opener) page = urllib.request.urlopen(url) html = page.read() return htmldef open_file(file_name): file = open(file_name,mode='w') return filedef get_img(html): img_rex = r'<img\salt=\"\"\ssrc=\"//(.*)\"\s'# <img alt="" src="//i.imgur.com/DloOEuSb.jpg" original-title=""> img_cre = re.compile(img_rex) imglist = re.findall(img_cre,html) x = 0 for img in imglist: urllib.request.urlretrieve(r'http://'+img,'%s.jpg' % x) x+=1 return imglista = input()html = get_html(a)html_file = open_file('http.html')img_file = open('imglist','w')for line in html.decode('utf8'): html_file.write(line)for line in get_img(html.decode('utf8')): img_file.write(line) img_file.write('\n')print(html)print(img_file)以上为这个简单的爬虫的源代码,基本骨架是借鉴来的,打开文件、读取网页、正则表达式匹配、写入文件。大概就是这几步,其中python的正则表达式也是需要编译的,使用re module 的compile 方法。使用‘()’ 来进行已匹配的字符串的记录,最后使用urllib.request的urlretrive方法根据url来下载图片。
0x04 疑问
在python 中,使用函数式编程。那么到底应该叫面向对象中的方法呢?还是应该叫模块下的函数?
0 0
- python第一个爬虫
- 第一个Python爬虫
- 第一个python爬虫
- 第一个python爬虫
- 第一个python爬虫
- Python--第一个爬虫
- python网络爬虫-第一个网络爬虫
- 【Python爬虫】编写第一个爬虫
- 我的第一个Python爬虫
- Python第一个程序小爬虫
- 我的第一个python爬虫脚本
- 第一个python爬虫 抓取新浪新闻
- python的第一个小爬虫requests
- Python第一个爬虫(爬取贴吧图片)
- 整理第一个python爬虫的思路
- 第一个python爬虫实战项目---翻译
- [Python]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程
- [Python]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程
- 约瑟夫环问题 poj 1012 && poj 2244
- 方法二:CAsyncSocket类
- 使用 C++ 处理 JSON 数据交换格式
- Android初学习 - 资源的国际化和横屏竖屏布局的切换
- Linux系统日常管理-Linux防火墙
- python第一个爬虫
- 颜色深浅指数的宏定义
- c#实现动态悬浮窗代码(可用于检测)
- Cocos2d-x的骨骼动画Spine和Armature
- Error:Failed to find: com.android.support:appcompat-v7:21.+
- 安卓自带录屏命令的优缺点(转)
- 方法三:CSocket类
- JS 异步加载
- c++动态库中使用命名空间的问题