#coding:utf-8
import urllib2
import re
import threading #图片下载
def loadImg(addr,x,y,artName):
data = urllib2.urlopen(addr).read()
f = open(artName.decode("utf-8")+str(y)+'.jpg', 'wb')
f.write(data)
f.close() #具体帖子页面解析,得到图片链接地址,并使用loadImg下载 artName为帖子名
def getImgLink(html,x,artName):
relink = '<img src=".*" file="(.*)" width=".*" id=".*" alt=".*.jpg" />'
cinfo = re.findall(relink,html)
y = 0
for lin in cinfo:
imgAddr = 'http://www.xxx.com/'+lin
print "LoadImg:"+str(x),imgAddr+'\n'
t = threading.Thread(target=loadImg(imgAddr,x,y,artName)) #使用threading 多线程下载
t.start()
y = y+1 #论坛版块页面解析,得到具体帖子链接
def getArticleLink(html,page):
relink = '<a href="(viewthread\.php\?tid=.*3D.*)">(.*)</a>'
cinfo = re.findall(relink,html)
x = 1
for lin in cinfo:
#print lin,'\n'
url="http://www.xxx.com/"+lin[0]
headers={"User-Agent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"}
req = urllib2.Request(url,headers=headers)
response= urllib2.urlopen(req)
html = response.read()
getImgLink(html,x,lin[1])
x = x+1 start = 1 #起始页
end = 100 #终止页
for page in range(end):
url="http://www.xxx.com/forumdisplay.php?fid=19&page="+str(page+start)
headers={"User-Agent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"}
req = urllib2.Request(url,headers=headers)
response= urllib2.urlopen(req)
html = response.read()
print'Start'
getArticleLink(html,page)

一个简单的Python网络爬虫(抓图),针对某论坛.的更多相关文章

  1. 第三次作业-Python网络爬虫与信息提取

    1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 过程. 5.写一篇不少于100 ...

  2. 一个简单的python爬虫程序

    python|网络爬虫 概述 这是一个简单的python爬虫程序,仅用作技术学习与交流,主要是通过一个简单的实际案例来对网络爬虫有个基础的认识. 什么是网络爬虫 简单的讲,网络爬虫就是模拟人访问web ...

  3. 一个简单的python爬虫,爬取知乎

    一个简单的python爬虫,爬取知乎 主要实现 爬取一个收藏夹 里 所有问题答案下的 图片 文字信息暂未收录,可自行实现,比图片更简单 具体代码里有详细注释,请自行阅读 项目源码: # -*- cod ...

  4. Python网络爬虫

    http://blog.csdn.net/pi9nc/article/details/9734437 一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛 ...

  5. Python 网络爬虫干货总结

    Python 网络爬虫干货总结 爬取 对于爬取来说,我们需要学会使用不同的方法来应对不同情景下的数据抓取任务. 爬取的目标绝大多数情况下要么是网页,要么是 App,所以这里就分为这两个大类别来进行了介 ...

  6. Python网络爬虫与信息提取

    1.Requests库入门 Requests安装 用管理员身份打开命令提示符: pip install requests 测试:打开IDLE: >>> import requests ...

  7. python网络爬虫之入门[一]

    目录 前言 一.探讨什么是python网络爬虫? 二.一个针对于网络传输的抓包工具fiddler 三.学习request模块来爬取第一个网页 * 扩展内容(爬取top250的网页) 后记 @(目录) ...

  8. Python网络爬虫与信息提取笔记

    直接复制粘贴笔记发现有问题 文档下载地址//download.csdn.net/download/hide_on_rush/12266493 掌握定向网络数据爬取和网页解析的基本能力常用的 Pytho ...

  9. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

随机推荐

  1. RandomAccessFile类

    File类只是针对文件本身进行操作,而如果要对文件内容进行操作,则可以使用RandomAccessFile类,此类属于随机读取类,可以随机地读取一个文件中指定位置的数据. //============ ...

  2. typedef和#define的用法与区别

    typedef和#define的用法与区别 typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程 ...

  3. php ceil() 函数向上舍入为最接近的整数。

    代码: <?php echo(ceil(0.60); echo(ceil(0.40); echo(ceil(); echo(ceil(5.1); echo(ceil(-5.1); echo(ce ...

  4. C#根据时间产生有序的GUID编码

    public static Guid GenerateGuid() { byte[] guidArray = Guid.NewGuid().ToByteArray(); , , ); DateTime ...

  5. asp.net(C#)页面事件顺序

    asp.net(C#)页面事件顺序 http://www.cnblogs.com/henw/archive/2012/02/09/2343994.html   1 using System.Data; ...

  6. jQuery监听键盘事件及相关操作使用教程

    一.首先需要知道的是: 1.keydown() keydown事件会在键盘按下时触发. 2.keyup() keyup事件会在按键释放时触发,也就是你按下键盘起来后的事件 3.keypress() k ...

  7. iOS数据库学习(2)-基础SQL语句

    /* 1. 创建一个数据表 */ CREATE TABLE IF NOT EXISTS t_dog (name text, age integer); CREATE TABLE IF NOT EXIS ...

  8. MySql循环插入数据(定义了存储过程)

    MySQL一窍不通啊,今天工作上需要用到,请教了别人,做以备忘 DROP PROCEDURE test_insert ; DELIMITER ;; CREATE PROCEDURE test_inse ...

  9. 优化PHP程序的方法(温故知新)

    1. If a method c++an be static, declare it static. Speed improvement is by a factor of 4. 如果一个方法可静态化 ...

  10. getStyle(),修改样式属性

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...