用mac的python写网络爬虫_在mac下使用python抓取数据

2015已经过去,这是2016的第一篇博文!

祝大家新年快乐!

但是我还有好多期末考试!

还没开始复习,唉,一把辛酸泪!

最近看了一遍彦祖的文章叫做

所以自己也想小试牛刀.于是便开始动手写,但初次接触,还是遇见了很多不懂的东西,于是爬文一个一个解决了,最终抓取了自己想要的东西

彦祖的这篇文章里Python代码格式有错,但是解释是没错的!所以我待会儿贴出我能正确运行的代码

彦祖的文章里说可以直接用类似于cocoapods的Python库管理工具pip进行安装我们解析网页所需要用的第三方库BeautifulSoup!

Mac确实是自带了Python.但是并没有安装pip,所以需要我们手动进行安装!

有人说可以使用命令:easy_install pip进行安装,但是我并没有安装成功!百思不得其解

于是爬文寻找其他方法:http://stackoverflow.com/questions/17271319/installing-pip-on-mac-os-x

原来是需要我的超级管理员权限...

至此,安装Pip成功

第二步:安装BeautifulSoup!

用彦祖的命令去运行,结果报错!提示我安装失败!(又忘了截图..)

没办法,就尝试手动安装BeautifulSoup,结果还是不行

后来我想是不是还是因为没有管理员权限的原因

于是尝试加上过后,就安装成功了

好了,开始写代码吧,但是我一个新人连该用什么来写Python代码都不知道!

又搜!(好低级的问题)=====>用记事本就行(真方便)(保存为.py文件后,是用的xcode打开的)

于是敲了如下代码:

1 #!/usr/bin/python

2 #-*- coding: utf-8 -*-

3 #encoding=utf-8

4

5 importurllib26 importurllib7 importos8 from BeautifulSoup importBeautifulSoup9 defgetAllImageLink():10 html = urllib2.urlopen('http://www.dbmeinv.com').read()11 soup =BeautifulSoup(html)12

13 liResult = soup.findAll('li',attrs={"class":"span3"})14

15 for li inliResult:16 imageEntityArray = li.findAll('img')17 for image inimageEntityArray:18 link = image.get('src')19 imageName = image.get('title')20 filesavepath = '/Users/WayneLiu_Mac/Desktop/meizi/%s.png' %imageName21 urllib.urlretrieve(link,filesavepath)22 printfilesavepath23

24

25 if __name__ == '__main__':26 getAllImageLink()

获得了如下数据(彦祖好邪恶....):

687493-20151228145713807-362674126.jpg

其实python真的很强大的,短短数几十行代码就可以实现这些功能!

闲来无事,又完善了一下代码,用以获得所有妹子的照片...

1 #!/usr/bin/python

2 #-*- coding: utf-8 -*-

3 #encoding=utf-8

4

5 importurllib26 importurllib7 importos8 importsocket9 from BeautifulSoup importBeautifulSoup10

11

12 defgetAllImageLink():13 xiayiye =True14 page = '/?pager_offset=12'

15 while(1):16 html = urllib2.urlopen('http://www.dbmeinv.com%s' %page).read()17 soup =BeautifulSoup(html)18

19 liResult = soup.findAll('li',attrs={"class":"span3"})20 nextResult = soup.findAll('li',attrs={"class":"next next_page"})21

22

23 for li inliResult:24 imageEntityArray = li.findAll('img')25 nameResult = li.findAll('span',attrs={"class":"starcount"})26 for name innameResult:27 nameTitle = name.get('topic-image-id')28

29 for image inimageEntityArray:30 link = image.get('src')31 filesavepath = '/Users/WayneLiu_Mac/Desktop/meizi2/%s.jpg' %nameTitle32 socket.setdefaulttimeout(30)33 urllib.urlretrieve(link,filesavepath)34 printfilesavepath35

36 for nextPage innextResult:37 aEntityArray = nextPage.findAll('a')38 for a inaEntityArray:39 nextTitle = a.get('title')40 printnextTitle41 page = a.get('href')42 printpage43 if nextTitle.encode('utf-8') != "下一页":44 xiayiye =False45 printxiayiye46 if xiayiye ==False:47 break

48

49 if __name__ == '__main__':50 getAllImageLink()

呵呵哒...

687493-20151228171525151-632142584.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

運輸配送信息Delivery_Information

为什么80%的码农都做不了架构师?>>> 運輸配送信息Delivery_Information 金銀倉會選用以下運輸公司,為客戶配送磁磚傢俬潔具: 佛山冠昌達中港運輸(散貨或包車,近佛山石灣的磁磚倉庫,近樂從傢俬城…

Spring+SpringMVC+Mybatis 多数据源整合

原文地址:http://blog.csdn.net/q908555281/article/details/50316137 ----------------------------------- 此篇文章是基于Spring3.0和mybatis3.2的总体大概流程 :1. 拷贝所需jar 2.写一个数据库切换的工具类:DataSourceContextHolder&am…

查看mysql sql执行器优化后的sql

EXPLAIN EXTENDED select s.* from student s where s.sid in ( select sid from sc where sc.cid 0 and sc.score 100); show WARNINGS;

git ssh拉取代码_win10下git初始安装及配置工作

git安装从https://git-scm.com/https://git-scm.com/download/win 中下载安装包,点击exe文件运行,选择安装路径即可安装。git配置初次运行git前的配置,新建文件夹1、 新建一个文件夹,用来存放代码的文件夹---2、 打开文件夹&#…

联想m7400pro清零方法_联想打印机怎么清零 联想打印机清零方法【教程】

今天小编为读者挑选出了联想 打印机 部分机型的清零方式,希望阅读完这篇文章能帮助到各位。LJ3010A、LJ3116A、LJ3220A清零方式先点击控制面板上的“联机”按钮,让打印机处于脱机状态,再点击“执行”按钮进行打印。先点击控制面板上的“联机”…

c语言中数组名可以与其他变量名相同,C语言初学者入门讲座 第九讲 数组(1)...

C语言初学者入门讲座 第九讲 数组(1)(2007-01-17 11:39:19)数组在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为…

pb通过对象名称调用对象_C++ 可调用对象(二)

点击上方“蓝字”,发现更多精彩。本文在前一篇关于函数对象、bind 函数的基础上,对 C 中 lambda不表达式的使用进行总结。lambda01PART定义一个 lambda 表达式表示一个可调用的代码单元,可以理解为是一个未命名的内敛函数。类似任何函数&…

交换机虚拟化和堆叠的区别_核心交换机和普通交换机有何区别?

提起核心交换机与普通交换机有什么区别?相信很多朋友都有点迷惑,今天我们一起来了解下。核心交换机并不是交换机的一种类型,而是放在核心层(网络主干部分)的交换机叫核心交换机。一般大型企业网络和网吧需要购买核心交换机来实现强大的网络扩…

tmpfiles.d导致的unix:///tmp/supervisor.sock no such file坑(待续)

为什么80%的码农都做不了架构师?>>> 系统环境: CentOS Linux release 7.1.1503 (Core) supervisor 3.3.1今天初七,刚放完假需要去supervisor restart下程序。发现报了这个错误。但是看supervisord的进程还在运行,项目代码也还在…

springMVC两种方式实现多文件上传及效率比较

springMVC实现多文件上传的方式有两种,一种是我们经常使用的以字节流的方式进行文件上传,另外一种是使用springMVC包装好的解析器进行上传。这两种方式对于实现多文件上传效率上却有着很大的差距,下面我们通过实例来看一下这两种方式的实现方…

c语言 个位,如何才能给C语言增加几个位操作函数

在汇编语言中有直接对位进行操作的指令,如置位、复位、位取反、测试某一位等,这对于硬件操作十分方便,在C语言中尽管也提供了一些位操作手段,如按位与、按位或、按位取反等,但它们是对一个字节进行操作,如要…

hsrp 切换_HSRP、VRRP、GLBP | 网络工程师之网关高可用、冗余

在RS的学习过程中我们接触到很多网络技术,后面就把工作中常用的拿来与大家分享,本次我们来分享网关冗余技术。当我们的网关设备无法使用堆叠(VSS,istack,IRF),或者不同厂商设备的时候,非常有效,能够提供网关…

Linux文件系统详解

从操作系统的角度详解Linux文件系统层次、文件系统分类、文件系统的存储结构、不同存储介质的区别(RAM、ROM、Flash)、存储节点inode。本文参考: http://blog.chinaunix.net/uid-8698570-id-1763151.htmlhttp://www.iteye.com/topic/816268http://soft.chinabyte.co…

opencv机器学习线性回归_机器学习(线性回归(二))

Lasso与岭回归的同和异Lasso、岭回归都可以预防模型过拟合Lasso回归惩罚项为L1正则,岭回归为L2正则Lasso回归可用来特征选择,岭回归则不能Lasso回归用坐标下降法求解,岭回归用梯度下降法求解。为什么Lasso可用于特征选择,而岭回归…

把EXCEL用程序导入到ORACLE中(SpringMVC+MyBatis)

前提&#xff1a;项目中需要把EXCEL数据批量导入oracle中两张表中。如是用到了poi技术。分别导入poi-3.11-beta2.jar和poi-ooxml-schemas-3.9.jar这两个包。EXCEL数据如下 第一步&#xff1a;修改spring框架配置文件。 springmvc-servlet.xml加上&#xff1a; <!-- 文件上传…

access实例_西门子PLC1200组态王跟Access数据库-⑥组态王变量

西门子PLC1200&#xff0c;组态王跟Access数据库--⑥组态王变量组态王的变量设置1.0 变量设置如下图所示&#xff0c;选择数据词典&#xff0c;里面是系统变量跟新建的变量&#xff0c;选择新建1.1 如下图&#xff0c;从上往下依次&#xff0c;变量名(这个应该知道)&#xff0c…

Android 撸起袖子,自己封装 DialogFragment

前言 具体的代码以及示例我都放上 Github 了&#xff0c;有需要的朋友可以去看一下 DialogFragmentDemos&#xff0c;欢迎 star 和 fork. 本文的主要内容 DialogFragment 是什么创建通用的 CommonDialogFragment实现各种类型的 DialogFragment在写正文之前&#xff0c;先来一波…

as模拟器文件夹路径_EGG Switch手机模拟器怎么用?中文教程来了......

大家好&#xff0c;小鸡妹我又来啦。自从昨天曝光了美国NX工作室的EGG模拟器之后&#xff0c;推文底下就多了一千多条留言&#xff0c;说啥的都有。不过小鸡妹大概总结了一下&#xff0c;发现下面这几条问题&#xff0c;出现的频率最高&#xff1a;① 找不到网址&#xff1b;②…

郁金香汇编代码注入怎么写看雪_世界黑客编程大赛冠军的汇编代码 你见过吗?...

前几天发布了一篇“雷军22年前写的汇编代码”的文章&#xff0c;引起网友的热议。有人说汇编是最牛逼的编程语言&#xff0c;没有之一。汇编语言确实厉害&#xff0c;不知道你有没有见过世界黑客编程大赛冠军的作品?雷军编写的的汇编代码有 网友分享了97年Mekka ’97 4K Intro…

变位齿轮重合度计算公式_齿轮“模数”是如何计算的?

模数是决定齿轮大小的因素。齿轮模数被定义为模数制轮齿的一个基本参数&#xff0c;是人为抽象出来用以度量轮齿规模的数。目的是标准化齿轮刀具&#xff0c;减少成本。直齿、斜齿和圆锥齿齿轮的模数皆可参考标准模数系列表。工业定义&#xff1a;齿轮的分度圆是设计、计算齿轮…