本篇主要展示自己闲暇之余写的python爬虫,比如几个小爬虫案例研究,简单入门,代码扩展中.每天也都有着自己的工作,无聊就写点python,慢慢扩展
-_-! ,冒死为大家送福利,越向下越刺激
PS. 所有案例都基于python版本 3.x
基于最新版本,如果还在用2.x,没有大的需求的话,换成3.x,2.x的代码都是可以迁移的,不要怕
实例1:爬取baidu首页
代码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25import urllib.request
#网址
url = "https://www.baidu.com/"
#请求
request = urllib.request.Request(url)
#爬取结果
response = urllib.request.urlopen(request)
data = response.read()
#设置解码方式
data = data.decode('utf-8')
#打印结果
print(data)
#打印爬取网页的各类信息
print(type(response))
print(response.geturl())
print(response.info())
print(response.getcode())
实例2:爬取youdao和百度的翻译功能来翻译自己输入的句子
主要是有时候一直需要打开一个chrome的tab页去翻译觉得很麻烦,就爬了一下翻译功能,自己用的话直接再添加一点东西直接在本地运行,对自己也比较方便.
1 |
|
爬取斗鱼上的直播图片
这张图主要是为了展示下面提供的源代码中的16、17行:1
2temp = valueimage[0].split(':')[2]
temp = "https:"+temp
这张如图展示的是我们处理之后得到的urlvalueimage,再对它处理一下就能拿到我们想要的url了,也就是这里16、17行的出现在这里的意义.
这张图展示的是下载图片的过程.
最终,爬到的部分数据(你可以选择一直跑,我这里就取一次数据):
代码如下:
1 |
|
如果你对某个女主播感兴趣,搜索一下如何截取视频(或者直接拉视频),把爬虫放在服务器上天天跑,那就比较刺激了.
爬火车订票单号
暂时还没开始写,一方面是公司在做这个,有点顾忌,另外一方面主要是没找到一个特别好的样例来改
这个跳过,万一出现问题,被人举报,我可能会被辞退,还是算了
正式开始刺激的
爬美女图片(如果想爬小黄图的话,切换网址)
有没有什么时候觉得浏览黄图太麻烦了,万一被删除了也麻烦,不如一次爬下来,以后慢慢欣赏 -_-
PS.首先声明我是从来不做这种事情的,如果down了代码的话,请注意身体,声明我身体很好,也不做这种事
其实说实话,很多小黄图网站我试了一下,都挺好爬的,因为这类网站频繁更换等原因,我目前测试了1个“你懂得”网站,既没有ip封锁也没有反爬虫,所以我发现爬小黄图也是爬虫的一个很好的应用场景
加入有上述问题,解决办法:
1.ip代理
2.Anti-Anti-Spider,详情可以github”luyishisi”
代码已经给出了详细的说明,这里不做多余的说明
这里主要是想把爬虫做的刺激点,我这里是爬10页的量,如果量不够,改代码第60行的page=10,自己修改页数
这里只展示一部分,差不多爬了有 200张
源代码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import urllib.request
import os
import time
# 打开URL,返回HTML信息
def open_url(url):
# 根据当前URL创建请求包
req = urllib.request.Request(url)
# 添加头信息,伪装成浏览器访问
req.add_header('User-Agent',
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36')
# 发起请求
response = urllib.request.urlopen(req)
# 返回请求到的HTML信息
return response.read()
# 查找URL中的下一页页码
def get_page(url):
# 请求网页,并解码
html=open_url(url).decode('utf-8')
# 在html页面中找页码
a=html.find('current-comment-page')+23
b=html.find(']',a)
# 返回页码
return html[a:b]
# 查找当前页面所有图片的URL
def find_imgs(url):
# 请求网页
html=open_url(url).decode('utf-8')
img_addrs=[]
# 找图片
a = html.find('img src=')
#不带停,如果没找到则退出循环
while a != -1:
# 以a的位置为起点,找以jpg结尾的图片
b = html.find('.jpg',a, a+255)
# 如果找到就添加到图片列表中
if b != -1:
img_addrs.append(html[a+9:b+4])
# 否则偏移下标
else:
b=a+9
# 继续找
a=html.find('img src=',b)
return img_addrs
# 保存图片
def save_imgs(img_addrs):
for each in img_addrs:
print('download image:%s'%each)
filename=each.split('/')[-1]
with open(filename,'wb') as f:
img=open_url("http:"+each)
f.write(img)
# 下载图片
# folder 文件夹前缀名
# pages 爬多少页的资源,默认只爬10页
# 文件夹默认在当前路径下,创建 ‘girl’+ 文件夹
def download_mm(folder='girl',pages=10):
folder+= str(time.time())
# 创建文件夹
os.mkdir(folder)
# 将脚本的工作环境移动到创建的文件夹下
os.chdir(folder)
# 本次脚本要爬的网站
url='http://jandan.net/ooxx/'
# 获得当前页面的页码
page_num=int(get_page(url))
for i in range(pages):
page_num -= i
# 建立新的爬虫页
page_url=url+'page-'+str(page_num-1)+'#comments'
# 爬完当前页面下所有图片
img_addrs=find_imgs(page_url)
# 将爬到的页面保存起来
save_imgs(img_addrs)
if __name__ == '__main__':
download_mm()
利用爬虫做个中文机器人
心血来潮做的一个小中文机器人,利用的其实还是网页抓取,核心技术由图灵机器人提供
测试场景如下:
源代码如下:
1 |
|
进一步代码后续展示
拓展中……