记录第一次纯手打爬虫经历

简介: 这两天看了看Python的一些语法,发现Python还真的是给力呢。先不说它强大的类库,面向对象或者其他的好处,单单是爬图这一块,就已经深深的吸引到了我,于是在我的摸索之下,人生中的第一次爬虫出现了。

这两天看了看Python的一些语法,发现Python还真的是给力呢。先不说它强大的类库,面向对象或者其他的好处,单单是爬图这一块,就已经深深的吸引到了我,于是在我的摸索之下,人生中的第一次爬虫出现了。之所以写这篇文章,是因为想以此来纪念一下。等今后技术上进步了,回过头来看看自己走过的点点滴滴,出现的这诸多的问题,想必也是一种不错的体验吧。

好了,废话不多说。


目标网址

这里写图片描述

我的思路

思路上来说,很普通。

  • 先利用urllib把对应的网页给抓下来
  • 然后对网页进行解析,这里使用了re模块来进行正则表达式的匹配,我们需要的就是img标签而已
  • 再次的使用urllib将图片对应的那个url给download下来
  • 最后写入一张张图片
  • 至此,完结

细节上的实现

首先是一个下载网页的过程,这里我将其封装到了一个函数中

def getHtml(url):
    reload(sys)
    return urllib.urlopen(url).read()

然后是写入一个图片文件的过程,依然封装起来,如下:

def writeToFile(path,name,data):
    file = open(path+name,'wb')
    file.write(data)
    file.close()
    print name+" has been Writed Succeed!"

最为关键的就是使用正则表达式来匹配我需要的东西–图片,正则表达式的话,我们可以这么干,这里仅仅是针对于这篇。我们可以使用开发者工具看到如下:
这里写图片描述
正则表达式为r'src=(.+?\.jpg)'
下面我来详细的说明一下各个参数的含义:

  • r’ : 即可以忽略转义的影响,如果不写这个的话,我们需要对右斜线进行转义”\\”
  • src=”” : 这里就是一个匹配格式,就是包含有src=”“开头的数据
  • () : 匹配完成后返回的将是一个list,方便我们进行数据的提取
  • .+?.jpg : 就是匹配任意多个以.jpg结尾的数据,这里就是我们的图片了

好了,该做的都做好了,下面让我们看一看完整的代码吧

完整的代码

# coding:UTF-8

import urllib
import sys

import re
import os


def getHtml(url):
    reload(sys)
    return urllib.urlopen(url).read()

def writeToFile(path,name,data):
    file = open(path+name,'wb')
    file.write(data)
    file.close()
    print name+" has been Writed Succeed!"

#url = "http://www.10danteng.com/index/pages/id/11036/"
url = 'http://www.u148.net/article/55557.html'
page = getHtml(url)
reg =re.compile(str( r'src="(.+?\.jpg)"'))
images_url = re.findall(reg,page)

# 测试一下网址是否可达
#print images_url


# 测试一下网页是否正确的下载到了内容
#print content


name = 'me'
path = "F:\\pachong\\"
#writeToFile(path,str(name)+".jpg",content)
for i, item in enumerate(images_url):
    everypicture =  getHtml(item)
    writeToFile(path,str(i)+".jpg",everypicture)

最后看一下,爬到了什么

这里写图片描述

总结

代码还是很凌乱的,我应该把那个正则匹配的也封装起来的。这样方便代码的维护和减少重复代码。

通过这次的小案例,我学会了一些简单模块的使用,同时也对于Python有了一点入门的感觉了。Python就是一个人思想的代表。只要逻辑对了,顺着思路一步步的往下走。就一定可以成功完成的。另外,那就是遇到错误,不要放弃。要从错误中寻找解决的方法。

如果,你认为代码中有什么不正确的地方,或者想和本人探讨一下关于爬虫方面的问题,欢迎留言哦。

目录
相关文章
|
6月前
|
数据采集 机器学习/深度学习 数据可视化
分享68个Python爬虫源码总有一个是你想要的
分享68个Python爬虫源码总有一个是你想要的
212 0
|
3月前
|
数据采集 Java 数据库连接
《花100块做个摸鱼小网站! 》第二篇—后端应用搭建和完成第一个爬虫
本文详细介绍了一个基于Spring Boot的后端应用搭建过程,包括Maven项目结构的规划与配置、依赖管理、环境变量配置、数据库连接配置等。作者通过实际案例——一个摸鱼小网站的开发,逐步引导读者理解并实践项目的搭建流程。此外,还分享了如何利用Postman从cURL命令快速生成HTTP请求代码的方法,并演示了如何将这些代码整合进项目中,实现了一个简单的定时爬取抖音热搜数据的功能。文章不仅提供了详尽的代码示例,还附带了丰富的截图说明,非常适合希望从零开始构建Web应用的开发者参考学习。
63 3
《花100块做个摸鱼小网站! 》第二篇—后端应用搭建和完成第一个爬虫
|
6月前
|
数据采集 数据可视化 Java
分享66个Python爬虫源码总有一个是你想要的
分享66个Python爬虫源码总有一个是你想要的
231 1
|
搜索推荐 UED
做好这几点百度收录很快的
网站质量就是做好网站的基本页面审美度和网站框架,一个好的网站框架,可以让网站能够被客户清晰的认知到底要表达哪些,这也是各大浏览器比较喜欢的网站框架。
|
数据采集 Python
爬虫基础-第六天
在pycharm写正则,并学习re模块
86 1
|
数据采集
爬虫基础-第四天
解决第三天的问题,外加多get请求练习
96 0
|
存储 SQL XML
搜索引擎项目开发过程以及重难点整理(一)
搜索引擎项目开发过程以及重难点整理(一)
554 0
搜索引擎项目开发过程以及重难点整理(一)
|
SQL 自然语言处理 搜索推荐
搜索引擎项目开发过程以及重难点整理(二)
搜索引擎项目开发过程以及重难点整理(二)
145 0
搜索引擎项目开发过程以及重难点整理(二)
|
数据采集 数据安全/隐私保护
爬虫基础-第三天
第三天虽然内容不多,不过需要大量练习,最好自己总结一波
79 0
|
开发框架 Java 测试技术
【测试基础】五、这样提bug单,开发小哥还会怼你么?
【测试基础】五、这样提bug单,开发小哥还会怼你么?
【测试基础】五、这样提bug单,开发小哥还会怼你么?

相关实验场景

更多
下一篇
无影云桌面