[二星]程序开发,不限语言,抓取网页中的图片

除了美化之外,还可以来尝试挑战一下任务
回复
biog8888
帖子: 1
注册时间: 2013-04-25 8:36
送出感谢: 0
接收感谢: 0

Re: [二星]程序开发,不限语言,抓取网页中的图片

#46

帖子 biog8888 » 2013-04-25 8:39

:em05 开心到站
blune68
帖子: 1
注册时间: 2013-07-03 19:52
系统: ubuntu
送出感谢: 0
接收感谢: 0

Re: [二星]程序开发,不限语言,抓取网页中的图片

#47

帖子 blune68 » 2013-07-03 19:55

http = require 'http'
urllib = require 'url'
queryString = require 'querystring'

server = http.createServer (req, resp) ->
urlObj = urllib.parse(req.url)
pathname = urlObj.pathname

initHtml = "<form action='/submit' method='get'><div><input type='text' name='reqUrl'><input type='submit'></div></form>"

if pathname is '/submit'
reqObj = queryString.parse(urlObj.query)
resp.setHeader 'Content-Type', 'text/html'

if reqObj.reqUrl
backServer reqObj.reqUrl, (err, datas) ->
parseHtml datas, (imgs) ->
if imgs and imgs.length > 0
resp.write "#{initHtml}<div>#{imgs.join('')}</div>"
resp.end()
else
resp.write('搜索图片为空')
resp.end()
else
resp.write('参数为空')
resp.end()
else
resp.setHeader 'Content-Type', 'text/html'
resp.write(initHtml)
resp.end()

server.listen(9999)

backServer = (url, cb) ->
options = urllib.parse url
options.method = 'GET'

req = http.request options, (res) ->
chunks = []
res.on 'data', (chunk) ->
chunks.push chunk

res.on 'end', () ->
buffer = Buffer.concat chunks
cb(null, buffer)

res.on 'error', (err) ->
cb(err)

req.on 'error', (err) ->
cb(err)

req.end()

parseHtml = (datas, cb) ->
reg = /<img[^>]+src="[^"]+"[^>]*>/g
htmlToString = datas.toString() if datas
imgs = htmlToString.match reg
cb(imgs)
头像
月下叹逍遥
论坛版主
帖子: 33994
注册时间: 2010-10-07 14:23
系统: Archdows10
来自: 某系某星某洲某国某省某市
送出感谢: 8 次
接收感谢: 63 次
联系:

Re: [二星]程序开发,不限语言,抓取网页中的图片

#48

帖子 月下叹逍遥 » 2016-05-07 17:27

代码: 全选

# coding=utf-8

import re
import urllib.request
import os

def getHtml(url):
	page = urllib.request.urlopen(url)
	html = page.read().decode('utf-8')
	return html

def getImg(html):
	reg = r'src="(.+?\.jpg)"'
	imgre = re.compile(reg) 
	imglist = imgre.findall(str(html))
	print(imglist)
	x = 0
	try:
		os.mkdir("pic")
	except :
		pass

	for imgurl in imglist:
		try:
			conn = urllib.request.urlopen(imgurl)
			f = open("pic\{0}.jpg".format(x),'wb')
			f.write(conn.read())
			f.close()
			x=x+1	
		except :
			pass
	 
html = getHtml("http://www.gamersky.com/") 
getImg(html)

心似浮云常自在,意如流水任东西。
此事背后一定有个天大的咪咪
广告:
1、走过路过,不要错过,dropbox网盘2.25G大放送
py大法好,退C保平安
java多妖孽,VB本异端
日诵一千遍,快活似神仙
回复

回到 “非常任务”