• 大小: 8.42MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-06
  • 语言: Python
  • 标签: python  pycharm  python3  

资源简介

通过改变URL来爬取百度贴吧不同的贴吧内容,新手友好度很好,值得学习

资源截图

代码片段和文件信息

#!/usr/bin/evn python3
#-*- coding: utf-8 -*-
‘‘‘
Created on 2019年6月30日
‘‘‘

import urllib.request
import urllib.parse
from bs4 import BeautifulSoup
from mylog import MyLog as mylog
import codecs

class Item(object):
    title = None #帖子标题
    firstAuthor = None #帖子创建者
    firstTime = None #帖子创建时间
    reNum = None #总回复数
    content = None #最后回复内容
    lastAuthor = None #最后回复者
    lastTime = None #最后回复时间

class GetTiebaInfo(object):
    def __init__(self url):
        self.url = url
        self.log = mylog()
        self.pageSum = 5
        self.urls = self.getUrls(self.pageSum)
        self.items = self.spider(self.urls)
        self.pipelines(self.items)

    def getUrls(self pageSum):
        urls = []
        pns = [str(i * 50) for i in range(pageSum)]
        ul = self.url.split(‘=‘)
        for pn in pns:
            ul[-1] = pn
            url = ‘=‘.join(ul)
            urls.append(url)
        self.log.info(‘获取URLS成功‘)
        return urls

    def spider(self urls):
        items = []
        for url in urls:
            htmlContent = self.getResponseContent(url)
            soup = BeautifulSoup(htmlContent ‘lxml‘)
            tagsli = soup.find_all(‘li‘ attrs = {‘class‘:‘j_thread_list clearfix‘})
            for tag in tagsli:
                item = Item()
                item.title = tag.find(‘a‘ attrs = {‘class‘:‘j_th_tit‘}).get_text().strip()
                item.firstAuthor = tag.find(‘span‘ attrs = {‘class‘:‘frs-author-name-wrap‘}).a.get_text().strip()
                item.firstTime = tag.find(‘span‘ attrs = {‘title‘:‘创建时间‘}).get_text().strip()
                item.reNum = tag.find(‘span‘ attrs = {‘title‘:‘回复‘}).get_text().strip()
                item.content = tag.find(‘div‘ attrs = {‘class‘:‘threadlist_abs threadlist_abs_onlyline‘}).get_text().strip()
                item.lastAuthor = tag.find(‘span‘ attrs = {‘class‘:‘tb_icon_author_rely j_replyer‘}).a.get_text().strip()
                item.lastTime = tag.find(‘span‘ attrs = {‘title‘:‘最后回复时间‘}).get_text().strip()
                items.append(item)
                self.log.info(‘获取标题为<<%s>>的项成功...‘ %item.title)
        return items

    def pipelines(self items):
        fileName = ‘百度贴吧_java.txt‘#.encode(‘utf-8‘)
        with codecs.open(fileName ‘w‘ ‘utf-8‘)as fp:
            for item in items:
                try:
                    fp.write(‘title:%s \t author:%s \t firstTime:%s \r\n content:%s \r\n return:%s \r\n‘
                            ‘lastAuthor:%s \t lastTime:%s \r\n\r\n\r\n\r\n‘%(item.title item.firstAuthor
                            item.firstTime item.content item.reNum item.lastAuthor item.lastTime))
                except Exception as e:
                    self.log.error(‘写入文件失败‘)
                else:
                    self.log.info(‘标题为<<%s>>的项输入到“%s“成功‘ %(item.title fileName))

    def getResponseContent(self url):
        ‘‘‘
        单独使用一个函数返回页面返回值,是为了后期方便的

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-07-22 11:20  baidupostbar - 副本\
     目录           0  2019-07-22 11:20  baidupostbar - 副本\.idea\
     文件         763  2019-07-01 01:13  baidupostbar - 副本\.idea\baidupostbar.iml
     目录           0  2019-06-30 20:53  baidupostbar - 副本\.idea\inspectionProfiles\
     文件         313  2019-07-01 01:13  baidupostbar - 副本\.idea\misc.xml
     文件         283  2019-06-30 20:41  baidupostbar - 副本\.idea\modules.xml
     文件       14798  2019-07-22 11:19  baidupostbar - 副本\.idea\workspace.xml
     文件      316009  2019-07-01 19:40  baidupostbar - 副本\getCommentInfo.log
     文件        3770  2019-07-01 19:24  baidupostbar - 副本\getCommentInfo.py
     文件        1574  2019-07-01 11:50  baidupostbar - 副本\mylog.py
     目录           0  2019-07-22 11:20  baidupostbar - 副本\venv\
     目录           0  2019-06-30 20:41  baidupostbar - 副本\venv\Include\
     目录           0  2019-07-22 11:20  baidupostbar - 副本\venv\Lib\
     目录           0  2019-07-22 11:20  baidupostbar - 副本\venv\Lib\site-packages\
     文件          55  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\easy-install.pth
     目录           0  2019-07-22 11:20  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\
     目录           0  2019-07-22 11:20  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\
     文件           1  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\dependency_links.txt
     文件          98  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\entry_points.txt
     文件           2  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\not-zip-safe
     文件        2972  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\PKG-INFO
     文件          74  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\requires.txt
     文件       12502  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\SOURCES.txt
     文件           4  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\top_level.txt
     目录           0  2019-07-22 11:20  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\pip\
     目录           0  2019-07-22 11:20  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\pip\_internal\
     文件       14014  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\pip\_internal\basecommand.py
     文件        8764  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\pip\_internal\baseparser.py
     文件        2773  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\pip\_internal\build_env.py
     文件        7023  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\pip\_internal\cache.py
     文件       16679  2019-06-30 20:41  baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\pip\_internal\cmdoptions.py
............此处省略378个文件信息

评论

共有 条评论