环境:python3.6

1:抓取百度贴吧—linux吧内容 基础版 抓取一页指定内容并写入文件

萌新刚学习Python爬虫,做个练习
贴吧链接: http://tieba.baidu.com/f?kw=linux&ie=utf-8&pn=0
解析源码使用的是BeautifulSoup
关于BeautifulSoup: 可以直接查看官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
文件存储使用json的方式
当然你可以保存成txt文件
废话不多说 直接上代码

'''
抓取百度贴吧---linux吧内容
基础版 抓取一页指定内容并写入文件
爬虫线路: requests - pyquery
Python版本: 3.6
'''import requests
import json
from bs4 import BeautifulSoup# 用于发送请求,获得网页源代码以供解析
def start_requests(url):r = requests.get(url)return r.content# 解析内容
def parse(text):soup = BeautifulSoup(text, 'lxml')infos = soup.find_all('li', attrs={'class': 'j_thread_list'})# 创建一个列表存储所有结果result_list = []for info in infos[1:]:# 创建一个字典将所有信息存入字典中mydict = {}mydict['title'] = info.find('a', class_='j_th_tit').text.strip()    # 帖子标题mydict['link'] = "http://tieba.baidu.com/" + info.find('a', class_='j_th_tit')['href']  # 帖子链接mydict['author'] = info.find('a', class_='frs-author-name').text.strip()    # 帖子作者mydict['time'] = info.find('span', class_='pull-right').text    # 发表时间result_list.append(mydict)return result_list# 将数据写入json文件
def write_json(result):s = json.dumps(result, indent=4, ensure_ascii=False)with open('tieba.json', 'w', encoding='utf-8') as f:f.write(s)def main():# 贴吧链接url = 'http://tieba.baidu.com/f?kw=linux&ie=utf-8&pn=0'text = start_requests(url)result = parse(text)write_json(result)# 一般做法
if __name__ == '__main__':main()

文件内容:

2:抓取百度贴吧—linux吧内容 升级版 抓取指定页内容并写入文件 多页抓取之构造url

'''
抓取百度贴吧---linux吧内容
升级版 抓取指定页内容并写入文件
多页抓取之构造url
爬虫线路: requests - pyquery
Python版本: 3.6
'''import requests
import json
from bs4 import BeautifulSoup# 用于发送请求,获得网页源代码以供解析
def start_requests(url):r = requests.get(url)print(111)return r.content# 解析内容
def parse(text):soup = BeautifulSoup(text, 'lxml')infos = soup.find_all('li', attrs={'class': 'j_thread_list'})for info in infos[1:]:mydict = {}mydict['title'] = info.find('a', class_='j_th_tit').text.strip()mydict['link'] = "http://tieba.baidu.com/" + info.find('a', class_='j_th_tit')['href']mydict['author'] = info.find('a', class_='frs-author-name').text.strip()mydict['time'] = info.find('span', class_='pull-right').textresult_list.append(mydict)# 将数据写入json文件
def write_json(result):s = json.dumps(result, indent=4, ensure_ascii=False)with open('all_tieBa.json', 'w', encoding='utf-8') as f:f.write(s)def main():for i in range(10):url = 'http://tieba.baidu.com/f?kw=linux&ie=utf-8&pn={}'.format(i * 50)text = start_requests(url)parse(text)write_json(result_list)print('写入完成')# 一般做法
if __name__ == '__main__':result_list = []main()

3:抓取百度贴吧—linux吧内容 升级版 抓取所有页内容并写入文件 多页抓取之翻页

这里要抓取的内容已经很多了,速度会很慢,萌新还不会通过其他技术来加速下载速度

'''
抓取百度贴吧---linux吧内容
升级版 抓取所有页内容并写入文件
多页抓取之翻页
爬虫线路: requests - pyquery
Python版本: 3.6
'''import requests
import json
from bs4 import BeautifulSoup# 用于发送请求,获得网页源代码以供解析
def start_requests(url):r = requests.get(url)return r.content# 解析内容
def parse(text):"""翻页原理是爬取一页的信息的同时,把下一页的url也爬取到,再对抓取到的这个url进行爬取。这种方法适用于有“下一页”标签的网站,而且一般是网页url无法构造的时候才用这种方法。用这种方法要注意对有无下一页进行判断"""soup = BeautifulSoup(text, 'lxml')infos = soup.find_all('li', attrs={'class': 'j_thread_list'})for info in infos[1:]:mydict = {}mydict['title'] = info.find('a', class_='j_th_tit').text.strip()mydict['link'] = "http://tieba.baidu.com/" + info.find('a', class_='j_th_tit')['href']mydict['author'] = info.find('a', class_='frs-author-name').text.strip()mydict['time'] = info.find('span', class_='pull-right').textresult_list.append(mydict)# 此处获取下一页的链接对象next_page = soup.find('a', class_='next')if next_page:next_url = 'http:'+next_page['href']print(next_url)text = start_requests(next_url)parse(text)# 将数据写入json文件
def write_json(result):s = json.dumps(result, indent=4, ensure_ascii=False)with open('tieba3.json', 'w', encoding='utf-8') as f:f.write(s)def main():text = start_requests(base_url)parse(text)write_json(result_list)print('写入完成')# 一般做法
if __name__ == '__main__':base_url = 'http://tieba.baidu.com/f?ie=utf-8&kw=linux&fr=search&red_tag=s0376598528'result_list = []main()

运行代码:

总结到此为止 -->over

python爬取百度贴吧指定内容相关推荐

  1. python爬取百度搜索_使用Python + requests爬取百度搜索页面

    想学一下怎样用python爬取百度搜索页面,因为是第一次接触爬虫,遇到一些问题,把解决过程与大家分享一下 1.使用requests爬取网页 首先爬取百度主页www.baidu.com import r ...

  2. python爬百度翻译-Python爬取百度翻译(利用json提取数据)

    本篇文章给大家带来的内容是关于Python爬取百度翻译(利用json提取数据),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 工具:Python 3.6.5.PyCharm开发工具. ...

  3. Python爬取百度翻译及有道翻译

    Python爬取百度翻译及网易有道翻译 百度翻译 一.简介 明确翻译链接,百度翻译链接:https://fanyi.baidu.com/,但是该链接不能为我们提供翻译的内容,此时需要在chrome浏览 ...

  4. 【Python】python爬取百度云网盘资源-源码

    今天测试用了一下python爬取百度云网盘资源. 标签: <无> 代码片段 [代码][Python]代码 import urllib import urllib.request impor ...

  5. python爬取百度云网盘资源-源码

    今天测试用了一下python爬取百度云网盘资源. 代码片段 import urllib import urllib.request import webbrowser import re def yu ...

  6. Python爬取百度图库

    Python爬取百度图库 页面分析 通过Chrome 的开发者模式,我们可以很发现 百度图库是通过ajax 加载图片的. 每一次都会发送一个请求:https://image.baidu.com/sea ...

  7. python爬取百度贴吧

    利用python爬取百度贴吧的网页,输入贴吧名,起始页,终止页,爬取索要爬取的页面 贴吧 ''' import urllib.request import urllib.parse import ti ...

  8. Python 爬取百度 搜索风云榜 新闻并 自动推送 到邮箱

    本文将使用Python爬取百度新闻搜索指数排名前50的新闻,并通过服务器运行,每天定时发送到指定邮箱. 先上代码: # -*- coding:utf-8 -*- import requests,os, ...

  9. Python爬取百度壁纸图片

    Python爬取百度壁纸图片 #! /usr/bin/python -- coding: utf-8 -- @Author : declan @Time : 2020/05/31 16:29 @Fil ...

最新文章

  1. 图神经网络新课上架:​宾大2020秋季在线课程开课,视频上线B站
  2. java数组循环试题_Java学习关于循环和数组练习题整理
  3. java import class_@class vs. #import
  4. matlab利用霍夫,基于matlab的霍夫变换
  5. gcc -fPIC选项
  6. 计算机控制系统的闭环复极点,计算机控制 第四章 2.ppt
  7. sql示例_PARSEONLY SQL命令概述和示例
  8. C# 代码生成器 (存储过程生成方法)
  9. ORACLE异常处理及函数
  10. 如何添加天锐绿盾屏幕水印
  11. 使用Java复制文件并在控制台显示文件进度
  12. 视频翻译字幕的软件哪个好?看完你就知道了
  13. 路由器连接猫服务器未响应,路由器连接猫不能上网怎么办
  14. RTK ST5113-53 3kN 220VAC
  15. Unity 3D鼠标操作实现旋转、缩放观察物体
  16. JAVA 繁体 转 简体 简体转翻译 繁体简体互转
  17. 铁甲雄兵显示服务器维护,铁甲雄兵正在获取服务器地址
  18. 十四、 ThinkPHP6_聚合.原生.子查询
  19. python打包二进制文件(pyd\dll\exe)
  20. 常用交换机的配置命令

热门文章

  1. 企企通×天能股份SRM一期项目成功上线,持续深化企业采购数字化
  2. winscp下载及安装教程
  3. Python 爬虫十六式 - 第一式:HTTP协议
  4. 6 GHz频段IMT系统对卫星固定业务干扰分析
  5. Java零基础入门:方法的重写
  6. 星系测光:理论基础与实操
  7. wevedeveloper靶机渗透
  8. 书籍录入(链表有序插入)
  9. JSP CMS 管理系统
  10. 【操作系统-进程】PV操作——读者写者问题