网上大多爬虫仍旧是python2的urllib2写的,不过,坚持用python3(3.5以上版本可使用异步I/O)python
相信有很多人爬虫第一次爬的是Mm图,网上不少爬虫的视频教程也是爬mm图,看了某人的视频后,把这个爬虫给完成了正则表达式
由于爬取的内容涉及我的隐私,因此,爬取的代码及网址不在此公布,不过介绍一下爬取的经验:服务器
1.咱们首先得了解咱们要爬取的是什么,在哪爬取这些信息,不要着急想用什么工具,怎么搞,怎么搞得异步
2.手动操做一遍爬虫要完成的任务,我这个就是爬图片的,能够本身操做一遍函数
3.打开抓包软件或者Google的F12调试工具,查看数据,了解请求过程当中的信息,如网址,发送请求的数据工具
大概了解以上信息后,能够开始编写爬虫了(我的经验,大牛勿喷,,,)fetch
介绍python3用于爬虫的模块及方法:编码
能够查看官方的API文档,看懂文档,下面的就不用看了url
urllib包:在python2中urllib和urllib2是分开的,python3合并在了一块儿,强调,这是个包,因此不少函数不同了,可是仍是那个味道spa
urllib.request
for opening and reading URLsurllib.error
containing the exceptions raised by urllib.request
urllib.parse
for parsing URLsurllib.robotparser
for parsing robots.txt
files 这四个模块中urllib.request是经常使用的,urllib.parse中urlencode()也是会用到的
在urllib.request中,经常使用的方法:
urllib.request.
urlopen
(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
class urllib.request.
Request
(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
headers参数,若是不想很容易被服务器发现,那么最起码加个user-agent吧,固然,你能够设置代理ip
urllib.parse.
urlencode
(query, doseq=False, safe='', encoding=None, errors=None, quote_via=quote_plus)
将请求发送的data字典转化为str,通过编码,data成了(get请求不用)
在爬取的过程当中,正则表达式必定会用到,推荐一款软件:MTracer,能够本身尝试写正则:
仍是很不错的,谁爬谁知道