Python学习之实现自己的网络爬虫 四

        我原本是要自己写一个脚本去爬“有色”站的图片看的,省得一张一张下载了。但是我当时遇到了问题,

就是:我取到了图片的url,在浏览器上打开正常,但是就是使用open,write或者使用urlretrieve都不能保存下来,后来

我决定用wget来下载了。看看我慢慢完成。


第一:这种图片分了好几种版块,我要下载的这个有这么个特点:

http://www.。。。。。屁都不是。。。。。。。。.info/forum-11-1.html

这里forum-11-1,这里的11是版块号,而1是进入版块后的页码

现在就去构造一下这些URL来试试。

# coding: utf-8
import urllib2, urllib, re, os
class XAV:
    def __init__(self, sectionNum):
        self.homePage = 'http://www.。。。。。。。.info'
        self.sectionURL = self.homePage + '/' + 'forum-' + str(sectionNum) + '-'
    def getPageURL(self, pageNum):
        self.pageURL = self.sectionURL + str(pageNum) + '.html'
        return self.pageURL
xav = XAV(10)
print xav.getPageURL(1)

第二步:现在得到了一个版块的URL后,我们就要打开,然后看看每一个帖子的URL了。

里面的格式是这样的:

<th class="common">
 <a href="thread-742843-1-1.html" onclick="atarget(this)" class="xst" >帖子的名称加上这个[10P]</a>
<span class="tps">&nbsp;...<a href="thread-742843-2-1.html">2</a></span>
</th>

thread-742843-1-1.html和thread-742843-2-1.html

这里有这两个,一般都是第一页就是所有图片了,其它页是回复的,所以我们只要第一个的那个。

# coding: utf-8
import urllib2, urllib, re, os
class XAV:
    def __init__(self, sectionNum):
        self.homePage = 'http://www.。。。。。。。。.info'
        self.sectionURL = self.homePage + '/' + 'forum-' + str(sectionNum) + '-'
    def getPageURL(self, pageNum):
        self.pageURL = self.sectionURL + str(pageNum) + '.html'
        return self.pageURL
    def getHtmlContent(self, url):
        try:
            request = urllib2.Request(url)
            response = urllib2.urlopen(request)
            return response.read()
        except urllib2.URLError, e:
            if hasattr(e, "reason"):
                print "failed to ", url
                return None
    def getTopicURL(self, pageUrl):
        content = self.getHtmlContent(pageUrl)
        pattern = re.compile('<th class="common">.*?<a href="(.*?)"', re.S)
        result = re.search(pattern, content)
        if result:
            topicURL = self.homePage + '/' + result.group(1).strip()
            return topicURL
        else:
            return None
xav = XAV(10)
pageURL = xav.getPageURL(1)
xav.getTopicURL(pageURL)


第三步:这里就得到了这页中,一个帖子的地址,然后我们就要进入这个帖子,里面,把图片下载下来。

我去实现一下,看看

照片在源码里的格式是这样的:

<img src="http://img.。。。。。.com/uploads/2015/03/20150318204649oby42.jpeg" onload="thumbImg(this)" alt="" /><br />





你可能感兴趣的:(Python学习之实现自己的网络爬虫 四)