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

祝大家新年快乐!

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

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

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

iOS程序员如何使用Python写网路爬虫

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

彦祖的这篇文章里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打开的)

于是敲了如下代码:

 #!/usr/bin/python
#-*- coding: utf-8 -*-
#encoding=utf-8 import urllib2
import urllib
import os
from BeautifulSoup import BeautifulSoup
def getAllImageLink():
html = urllib2.urlopen('http://www.dbmeinv.com').read()
soup = BeautifulSoup(html) liResult = soup.findAll('li',attrs={"class":"span3"}) for li in liResult:
imageEntityArray = li.findAll('img')
for image in imageEntityArray:
link = image.get('src')
imageName = image.get('title')
filesavepath = '/Users/WayneLiu_Mac/Desktop/meizi/%s.png' % imageName
urllib.urlretrieve(link,filesavepath)
print filesavepath if __name__ == '__main__':
getAllImageLink()

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

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

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

 #!/usr/bin/python
#-*- coding: utf-8 -*-
#encoding=utf-8 import urllib2
import urllib
import os
import socket
from BeautifulSoup import BeautifulSoup def getAllImageLink():
xiayiye = True
page = '/?pager_offset=12'
while(1):
html = urllib2.urlopen('http://www.dbmeinv.com%s' % page).read()
soup = BeautifulSoup(html) liResult = soup.findAll('li',attrs={"class":"span3"})
nextResult = soup.findAll('li',attrs={"class":"next next_page"}) for li in liResult:
imageEntityArray = li.findAll('img')
nameResult = li.findAll('span',attrs={"class":"starcount"})
for name in nameResult:
nameTitle = name.get('topic-image-id') for image in imageEntityArray:
link = image.get('src')
filesavepath = '/Users/WayneLiu_Mac/Desktop/meizi2/%s.jpg' % nameTitle
socket.setdefaulttimeout(30)
urllib.urlretrieve(link,filesavepath)
print filesavepath for nextPage in nextResult:
aEntityArray = nextPage.findAll('a')
for a in aEntityArray:
nextTitle = a.get('title')
print nextTitle
page = a.get('href')
print page
if nextTitle.encode('utf-8') != "下一页":
xiayiye = False
print xiayiye
if xiayiye == False:
break if __name__ == '__main__':
getAllImageLink()

呵呵哒...

在mac下使用python抓取数据的更多相关文章

  1. python抓取数据,python使用socks代理抓取数据

    在python中,正常的抓取数据直接使用urllib2 这个模块: import urllib2 url = 'http://fanyi.baidu.com/' stream = urllib2.ur ...

  2. python抓取数据构建词云

    1.词云图 词云图,也叫文字云,是对文本中出现频率较高的"关键词"予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨. 先看几个词 ...

  3. python抓取数据 常见反爬虫 情况

    1.报文头信息: User-Agent Accept-Language  防盗链 上referer 随机生成不同的User-Agent构造报头 2.加抓取等待时间 每抓取一页都让它随机休息几秒,加入此 ...

  4. MAC下使用Charles抓取安卓模拟器数据

    一.安装Charles,这个不多记录 二.Charles数据乱码问题(参照这篇文章 http://blog.csdn.net/huanghanqian/article/details/52973651 ...

  5. python 抓取数据,pandas进行数据分析并可视化展示

    感觉要总结总结了,希望这次能写个系列文章分享分享心得,和大神们交流交流,提升提升. 因为半桶子水的水平,一直在想写什么,为什么写,怎么写. 直到现在找到了一种好的办法: 1.写什么 自己手上掌握的,工 ...

  6. python 抓取数据 存入 excel

    import requestsimport datetimefrom random import choicefrom time import timefrom openpyxl import loa ...

  7. 使用python抓取数据之菜鸟爬虫1

    ''' Created on 2018-5-27 @author: yaoshuangqi ''' #本代码获取百度乐彩网站上的信息,只获取最近100期的双色球 import urllib.reque ...

  8. Python 抓取数据存储到Mysql中

    # -*- coding: utf-8 -*- import os,sys import requests import bs4 import pymysql#import MySQLdb #连接MY ...

  9. Python 抓取数据存储到Redis中

    redis是一个key-value存储结构.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...

随机推荐

  1. 牛客网Java刷题知识点之基本类型、引用类型

    不多说,直接上干货! byte-short-int-long,方便识记.

  2. 用CSS控制图片大小显示的方法

    图片自动适应大小是一个非常常用的功能,在进行制作的时候为了防止图片撑开容器而对图片的尺寸进行必要的控制,我们可不可以用CSS控制图片使它自适应大小呢? 可以通过按比例缩小或者放大到某尺寸(自己指定), ...

  3. Maven的学习资料收集--(十)Myeclipse下创建Maven的Web项目

    先要在MyEclipse中对Maven进行设置: 到此Maven对MyEclipse的支持设置完毕.   下面我们在MyEclipse中创建一个Maven标准的Web工程: New --> We ...

  4. The program 'unzip' is currently not installed. You can install it by typing:

    linux解压遇到下面问题: The program 'unzip' is currently not installed. You can install it by typing: sudo ap ...

  5. iOS开发之数据存取

    http://www.cocoachina.com/ios/20141111/10190.html

  6. 从零开始的全栈工程师——js篇2.15(offsetLeft)

    元素的属性 Div.attributes 是所有标签属性构成的数据集合 Div.classList 是所有class名构成的数组集合 在classList的原型链上看以看到add()和remove() ...

  7. 学习笔记:MDN的服务器端网站编程

    互联网是如何工作的 互联网(Internet)和网络(web) 互联网是基础设施,网络是建立在这种基础设施之上的服务. 网页,网站,网络服务器和搜索引擎的区别是什么? 网页(webpage) 一份能够 ...

  8. Java集合框架—List

    Collection |--List:元素是有序的,元素可以重复.因为该集合体系有索引. |--ArrayList:底层的数据结构使用的是数组结构.特点:查询速度很快.但是增删稍慢.线程不同步. |- ...

  9. [转]Tomcat日志详解

    Tomcat下相关的日志文件: 1.Cataline引擎的日志文件,文件名为catalina.{date}.log 2.Tomcat下内部代码丢出的日志,文件名为localhost.{date}.lo ...

  10. 如何查看与显示oracle表的分区信息

    显示分区表信息 显示数据库所有分区表的信息:DBA_PART_TABLES 显示当前用户可访问的所有分区表信息:ALL_PART_TABLES 显示当前用户所有分区表的信息:USER_PART_TAB ...