Python速成,爬虫抓取妹子图如何实现HTTP代理

在这里插入图片描述
根据上图,爬虫的核心就是中心的方框部分。这里分为三部分:URL管理器、网页下载器、网页解析器。
在这里插入图片描述
说的通俗一点就是:

  1. URL管理器:我要爬取哪些网站。
  2. 网页下载器:既然要爬取网站数据,总得获取到网页内容吧,这就需要下载网页。
  3. 网页解析器:网页有了,那就找到数据吧。网页涵盖数据这么多,怎么快速找到需要的数据?怎么定位呢?
    废话不多说,开始我们的爬虫之旅。
#coding:utf8
'''
link: http://h.zhimaruanjian.com/?utm-source=xianyu&utm-keyword=?1
'''
from tuchong import url_manager, html_parser, html_outputer, html_downloader

class SpiderMain(object):
    
    def __init__(self):
        self.urls       = url_manager.UrlManager()
        self.downloader = html_downloader.HtmlDownloader()
        self.parser     = html_parser.HtmlParser()
        self.outputer   = html_outputer.HtmlOutputer()
        
    def craw(self, root_url, user_nick):
        
        html_cont = self.downloader.download(root_url)
        new_urls = self.parser.parse_albums_urls(root_url, user_nick, html_cont)
        
        count = 1
        for link in new_urls:
            
            self.urls.add_new_url(link)
            while self.urls.has_new_url():
                try:
                    new_url = self.urls.get_new_url()
                    html_cont = self.downloader.download(new_url)
                    print "craw %d : %s"%(count , new_url)
                    new_data = self.parser.parse_image(new_url,html_cont)
                    # self.urls.add_new_urls(new_urls)
                    self.outputer.collect_data(new_data)
                    
                    count = count + 1
                except:
                    print "craw fail"
            
            self.outputer.output_html(user_nick)


if __name__ == "__main__":
    
    print "begin"
    
    user_nick = "shaineyy"
    root_url = "http://h.zhimaruanjian.com/?utm-source=xianyu&utm-keyword=?1"
    obj_spider = SpiderMain()
    obj_spider.craw(root_url, user_nick)
    
    print "finish"

当然,如果你真想学好所谓的爬虫,最好先学会基本的计算机知识,尤其是网络和算法知识,并且精通一门编程语言。这类半成品与真正的网络爬虫还有八万里的距离。如需要免费ip加扣裙齐思思酒肆贰六酒肆,本文实际上是在揭示一个道理:要想功夫深,哪能不吃苦呢?
在这个世界上,一切教人速成的伎俩,都是骗人的。

猜你喜欢

转载自blog.csdn.net/zhimaHTTP/article/details/114894288