资源简介
通过改变URL来爬取百度贴吧不同的贴吧内容,新手友好度很好,值得学习
![](http://www.nz998.com/pic/62932.jpg)
代码片段和文件信息
#!/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.xm
文件 283 2019-06-30 20:41 baidupostbar - 副本\.idea\modules.xm
文件 14798 2019-07-22 11:19 baidupostbar - 副本\.idea\workspace.xm
文件 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_li
文件 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\ba
文件 8764 2019-06-30 20:41 baidupostbar - 副本\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\pip\_internal\ba
文件 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个文件信息
- 上一篇:豆瓣电影大数据分析-
- 下一篇:《 流畅的python 》源代码 .zip
相关资源
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
- 基于PyQt5的视频播放器设计
- 一个简单的python爬虫
- csv文件行列转换python实现代码
- Python操作Mysql教程手册
- Python Machine Learning Case Studies
- python获取硬件信息
- 量化交易(附python常见函数的使用方
评论
共有 条评论