返回信息流今天在版上看见抓取淘宝图片的帖子自己也想试试,就上人人上找了一个公共主页准备试试将它的相册里图片下载下来。不过直接用urllib2.urlopen()得到的源码的图片的链接和在网页上得到的链接不同,而且也无法打开
这个是获得的源码的链接,
这个是网页上直接得到的链接。本人初学python,弄了一晚上,整个人都不好了,求各位大神解救啊!
这是一条镜像帖。来源:北邮人论坛 / python / #2507同步于 2014/8/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
[问题]用python抓取图片时网页的源码和获得的不同,求助!
h1050311695
2014/8/4镜像同步24 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 reverland 的大作中提到: 】
: Behave like the browser
: 估计哪段js修改这个了
那这个要怎么弄才行啊?
【 在 moonfighting 的大作中提到: 】
: 上代码
#!/usr/bin/python
#-*- coding:utf-8 -*-
import urllib2,urllib
url = 'http://page.renren.com/601658172/album/859001996?curpage='#图片页面的url
pre_url = 'http://page.renren.com/'
headers = {
'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'
}#伪装成浏览器
def get_picurl(url):
for i in range(1):#只采集第一页上的图片
response = urllib2.urlopen(url+str(i))
furl = response.read()
fpic_head = "<a href=\"/rjfittime"
fpic_tail = "\">"
temp =0
while 1:
fh = furl.find(fpic_head,temp)#对大图链接的搜索
ft = furl.find(fpic_tail,fh)
if fh < temp:
break
temp = ft + 1
purl = pre_url + furl[fh + 10: ft]#大图所在页面的链接
preq = urllib2.Request(purl, None, headers )
prespones = urllib2.urlopen(preq).read()
pic_head = "<img id=\"photo\""
pic_tail = "jpg"
temp1 = 0
while 1:
ph = prespones.find(pic_head,temp1)#对图片的链接的搜索
pt = prespones.find(pic_tail,ph)
if ph < temp1:
break
temp1 = pt + 1
print "------------"
print prespones[ph : pt]
get_picurl(url)