• “希希敬敬对”团队作业-敏捷冲刺-3


    “希希敬敬对”百度贴吧小爬虫任务计划:

    今天的团队讨论照片:

     

       龙江腾(队长) 201810775001

         完成任务“对贴吧前10页进行爬取任务”,明天将完成“爬取发帖主题人的主题回复数据”代码review。

       杨希                   201810812008

         完成“对贴吧前10页进行爬取任务”代码review,明天将完成代码,实现“爬取发帖主题人的主题回复数据”功能。

       何敬上     201810812004

         完成任务“对贴吧前10页进行爬取任务”,明天将完成“爬取发帖主题人的主题回复数据”代码review。

    遇到的问题:

      最开始不能对需要爬取到的html代码块准确定位,后来改进正则表达式成功爬取到需要的数据,并完整爬取到10页内所有需要的数据。

    燃尽图:

     

    程序代码:

    # 找到数据对应的网页,分析网页结构找到数据所在的标签位置
    #模拟HTTP请求,向服务器发送这个请求,获取到服务器返回给我们的HTML
    
    import re
    from urllib import request
    
    class BDTBCrawler():
        url = "http://tieba.baidu.com/f?kw=%E4%B8%9C%E5%8D%8E%E7%90%86%E5%B7%A5%E5%A4%A7%E5%AD%A6&ie=utf-8"
        Name_num_list = []
    
        def __init__(self, url):
            BDTBCrawler.url = url
    
        #匹配到包含了主题作者和帖子回复数关键字的标签
        root_pattern = '<span class="threadlist_rep_num center_text"([sS]*?)data-field='
    
        #模拟HTTP请求,向服务器发送请求,获取到服务器返回给我们的HTML
        def __fetch_content(self):
            r = request.urlopen(BDTBCrawler.url)
            htmls = r.read()
            # 将服务器返回的字节码转换成字符串格式
            htmls = str(htmls, encoding='utf-8')
            return htmls
    
        def __analysis(self, htmls):
            #root_html获取包含了主题作者和帖子回复数关键字的标签
            root_html = re.findall(BDTBCrawler.root_pattern, htmls)
            return root_html
    
        def go(self):
            #使用for循环爬取前10页
            htmls = ''
            for i in range(0, 10):
                pn = i * 50
                #page记录当前爬取页面需要在URL上添加的字符串
                page = '&pn=' + str(pn)
                BDTBCrawler.url += page
                htmls += self.__fetch_content()
            root_html = self.__analysis(htmls)
            print(root_html)
    
    crawler = BDTBCrawler(BDTBCrawler.url)
    crawler.go()
    

     经运行,获取某贴吧前10页html功能已实现。

  • 相关阅读:
    LeetCode Reverse Nodes in k-Group
    LeetCode Unique Binary Search Trees II
    Binary Tree Zigzag Level Order Traversal
    JavaWeb--JSP
    Java--面向对象
    javaScript-进阶篇(三)
    javaScript-进阶篇(二)
    java--常用类
    javaScript-进阶篇(一)
    Java--数组
  • 原文地址:https://www.cnblogs.com/dyls/p/10017444.html
Copyright © 2020-2023  润新知