python百度贴吧爬虫,以及爬虫简要入门

python网络爬虫入门(二)——百度贴吧 几行代码,带你走遍万水千山。 阅读详情
一点点意见: 对于刚刚开始学习爬虫的小伙伴们,小编不建议学完python直接就看scrapy等框架,小编基础比较差,所以看框架真是看的零零碎碎的。其实一般来说初学者用本身的库,才能更好的体会python爬虫的精髓。

前提知识

1.写python养成良好的习惯开头加上这几句:

#_*_ encoding=utf-8 _*_
#!usr/bin/env python 

2.爬虫最重要的就是将抓下的源码做匹配,找到自己需要的东西,我们主要用的是正则表达式,初学时建议完全使用正则表达式,可能会听说别人说有神器,是滴,还有xpath,beautifulsoup这些工具,后两者可以去熟悉下,哪个简单就用哪个。这里提供一个正则学习的工具网站:http://blog.youkuaiyun.com/pleasecallmewhy/article/details/8929576

3.当然python中如果没有搞清元组,列表,字典的话,python基础要牢靠。学习python建议网站:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/

4.学会写注释,相信不管什么语言,注释的重要性,大伙儿应该都知道。


爬虫开始

  • 抓取网页源代码
import  requests
#这里爬取的是自己学校的网站
url = http://tieba.baidu.com/f?kw=%E5%8D%97%E5%8D%8E%E5%A4%A7%E5%AD%A6&ie=utf-8&pn=1
html = requests.get(url)

好啦,简单的几句就将贴吧首页所有的源码给抓下来了,别高兴的太早,最重要的事情才刚刚开始,第一件所要做的事情就是分析网页源代码。小编发现,每一个帖子的链接都很相似,都是形如:http://tieba.baidu.com/p/3802073149?pn=1 这样的链接,一串数字就是用户id,而 pn=1说明是第一页。
所以我们观察首页的源码,可以用正则来匹配出第一页所有的链接上面的id号,再将相同的部分加入存放到一个列表就OK啦。
可以观察到每一页又30个id链接,抓取前10页的id链接,一个300个id链接,下面是源码:

#_*_ encoding=utf-8 _*_
#!usr/bin/env python

#__author__ = 'Mr Cai'

#正则导入
import  re
import  requests

#返回每页的链接
def getPage(first):
    url = []
    for i in range(0,451,50):
        url.append(first + str(i))
    return  url

#获取每页上的id链接
def getId(url_list):

    #模拟浏览器,访问链接,用来对付反爬虫
    headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36'}
    Id_list = []
    id_temp = []
    #一页一页的获取id
    for url in url_list:
        html = requests.get(url,headers = headers)#获取该网页源码
        html.encoding = 'utf-8'#此网页用的是utf-8编码
        id_temp = re.findall(r';,"id":(.*?),"',html.content,re.S)#正则匹配id号
        Id_list += id_temp
    #将id号转换成链接保存起来
    for i in range(0,len(Id_list)):
        Id_list[i] = 'http://tieba.baidu.com/p/' + Id_list[i]

    return Id_list  #返回每一个帖子的链接

if __name__ == '__main__':
    first = "http://tieba.baidu.com/f?kw=%E5%8D%97%E5%8D%8E%E5%A4%A7%E5%AD%A6&ie=utf-8&pn="#每页链接相似的链接部分
    allPage = getPage(first)#整合前十页的链接存储到列表,并返回
    Id_url = getId(allPage)     #获取所有帖子的链接
    print Id_url

  • 抓取单个贴吧信息
#encoding=utf-8
#!usr/bin/env python
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
type = sys.getfilesystemencoding()

import  requests
from lxml import  etree
import  string
import  re


def getsource(url):
    headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36'}
    html = requests.get(url,headers = headers)
    html.encoding = 'utf-8'
    return  html.content

def getValue(html):

    selector = etree.HTML(html)
    #用于存储发帖时间
    time = []
    #每个回帖的内容
    content = []
    #用于计算一页有多少帖子(主要对于一个不满30的情况)
    count = len(re.findall(r'<div class="l_post l_post_bright j_l_post clearfix"',html,re.S))

    #帖子内容列表(不能用!)
    # content = selector.xpath('//*[starts-with(@id,"post_content_")]/text()')#第一次用神器啊(出问题了)

    #先抓大
    content_list = re.findall(r'<div id="post_content.*?</div>',html,re.S)
    #用sub将<>里面的东西替换成空格,就能完全呈现实体内容了
    for con in content_list:
        content.append(re.sub(r'<[^>]+>',' ',con))

    #时间获取
    #先大
    time_list = re.findall(r'<div class="post-tail-wrap">.*?</div>',html,re.S)
    #时间获取
    for list in time_list:
        time_selector = etree.HTML(list)
        temp = time_selector.xpath('//*[@class="tail-info"]/text()')
        time.append(temp[-1])

    #show一下
    for i in range(0,30):
        print content[i]
        print time[i]
        print '~~~~~~~~~~~~~~~~~~~~~~~'

    # f = open('show.txt','w+')
    # for con in time:
    #      f.writelines(con + '\n')
    # f.close()

if __name__ == '__main__':
    url = 'http://tieba.baidu.com/p/3802073149'
    html = getsource(url)
    getValue(html)

以上对于初学者知识点比较多,仅贴了代码,不会的尽量自己解决,不会的留言。
以上代码都可以直接运行。

Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片 (1).把分散的连载小说下载到本地 (2)批量下载贴吧图片** 一. 下载小说 定义一个类 这次用类来写。实现这个也不难,经过昨天的学习已经有一定经验了。导入库什么的就不说了。先看贴吧的url构成,如http://tieba.baidu.com/p/4723863270?see_lz=1&pn=2。其中http://tieba.baidu.com/p/4723863270为该帖的基础地址... 阅读详情

相关推荐

Python实现百度贴吧数据爬虫

作者:禅与计算机程序设计艺术 1.简介 本文主要通过爬取百度贴吧数据的方法,实现对贴吧中用户发布的贴子及其相关信息的抓取、分析及展示。所提到的爬虫包括使用Python语言编写的requests库进行数据获取、解析、存储等操作,基于BeautifulSoup

AI天才研究院 3486

手把手带你学python爬虫

课程名称:手把手带你学会Python爬虫课程特色:大量的课堂案例,让你解决疑难杂症能力更上一层楼学习建议:建议懂前端基础和后端基础的人观看课程简介:课程包含urllib、requests、正则、xpath、bs4、selenium、js破解、滑动验证码、模拟登陆、字体破解、多任务爬虫、Scrapy框架、分布式爬虫、增量爬虫、代理池、手机抓包、爬虫部署等知识。还等什么?快来让幽默老司机手把手带你学会Python爬虫吧。

python爬虫爬取贴吧

百度贴吧是一个流行的中文在线社区,用户可以在各种话题下发表帖子并参与讨论。本教程将指导您使用Python来爬取百度贴吧首页,并将帖子信息保存到Excel文件中。该脚本旨在爬取指定百度贴吧的前100页内容,并保存每个帖子的信息,包括评论数、标题、链接、内容、作者和时间戳。

2201_76125393的博客 2091

【2023最新】Python 百度贴吧 爬取文本作者以及图片

【2023最新】超详细!!!Python 百度贴吧 爬取文本作者以及图片 内涵源代码

m0_73689941的博客 5342

百度贴吧爬虫

一个python爬虫,爬百度贴吧,可以教初学者爬虫知识

bookzi5me全站kindle电子书籍爬取

book.zi5.me全站kindle电子书籍爬取,按照作者书籍名分类,每本书有mobi和equb两种格式,采用分布式进行全站爬取

【亲测免费】 探索技术世界:`baidu_tieba_crawler` - 贴吧数据爬取利器

探索技术世界:baidu_tieba_crawler - 贴吧数据爬取利器 在这个信息爆炸的时代,数据已成为宝贵的资源。如果你对互联网上的社区论坛数据分析有兴趣,尤其是针对百度贴吧的数据挖掘,那么项目绝对值得你的关注。 项目简介 baidu_tieba_crawler 是一个基于Python编写的百度贴吧数据爬虫框架。它利用requests、BeautifulSoup等库,高效地抓取贴吧中的帖子、...

gitblog_00023的博客 1119

MID360+fastlio功能笔记

前言。

qq_35598561的博客 5298

Python网络爬虫入门(一)——爬取百度贴吧图片

描述:用Python爬去百度贴吧图片并保存到本地。 本人刚学爬虫还不是很熟练,其中难点在于正则表达式的理解;#-*- coding:utf-8-*- import urllib import re #获取网页源码 def getHtml(url): page = urllib.urlopen(url) html = page.read() return html #根据条件

MTbaby的博客 3128

CMakeTestCCompiler.cmake错误解决

CMakeTestCCompiler.cmake错误解决欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 最近编译项目的时候,遇到一个cmake的错误,具体错误信息如下: /path-to-pr

昨夜星辰的博客 2万+

海豚调度器(dolphinscheduler)再次使用,添加钉钉预警

1,首先我们部署是海豚调度器 1.3.8版本,由于页面只有邮件预警,所以在了解源码的同时,需要添加钉钉预警 2,说明,这一块是同事搞的,不是我搞的,新版本的dolphinscheduler已经有了钉钉模块,只是新版本还没有发布 3,我们现在只是添加简单的钉钉预警,任务成功或者失败会发送邮件+钉钉 4,具体操作 找到最新的源码devhttps://github1s.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-alert/src/ma...

qq_31866793的博客 3083

python爬虫入门知识_Python爬虫基础知识:百度贴吧网络爬虫及源码分享

# -*- coding: utf-8 -*-#---------------------------------------# 程序:百度贴吧爬虫# 版本:0.5# 作者:why# 日期:2013-05-16# 语言:Python 2.7# 操作:输入网址后自动只看楼主并保存到本地文件# 功能:将楼主发布的内容打包txt存储到本地。#-------------------------------...

weixin_39846553的博客 67

从零到一:Quartus II连接开发板实战,打通绘图、管脚分配、编译与下载全链路

本文详细介绍了使用Quartus II软件连接FPGA开发板并完成首个项目的全流程。从硬件连接到驱动安装,到绘制电路框图、精准分配管脚,再到编译设置与最终下载,手把手指导您打通从设计到硬件实现的完整链路,是FPGA初学者的实战入门指南。

mqtt6iot的博客 717

Python爬虫入门学习例子之百度贴吧

初学Python爬虫,学习资料是这篇博客:Python爬虫入门教程 接着上一篇文章糗事百科爬虫再列出一个爬百度贴吧的例子。 # 程序:百度贴吧爬虫 # 语言:Python 2.7 # 操作:输入网址后自动只看楼主并保存到本地文件 # 功能:将楼主发布的小说内容打包txt存储到本地。 #--------------------------------------- i

login_sonata的博客 756

Habitat安装全网最详细教程,手把手带你跑通example.py(全网唯一)

全网最详细具身智能仿真平台habitat的安装教程

shannanshouyin的博客 2755

使用 ChatGPT Store 里的工具给 ABAP 制作 Logo,效果一般

在编程领域中,Domain Specific Language(DSL)是一种特定于某一问题领域的计算机语言,诞生目的就是为了解决该领域特定类型的问题。在 ChatGPT 官网的 GPT Stores,也有很多已经预先配置完毕,专用于某一特定领域的 GPT 工具,OpenAI 将其分类如下。第三个问题是 Logo 的配色,提供蓝白,黑绿和灰黄,以及自定义调色板四种选择。这个 GPT 设计了四个问题,通过一问一答的方式,获得使用者想创建 Logo 的细节。这次的复杂度调成最低的 1,感觉还是有点花里胡哨的。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 507

python爬虫爬取百度贴吧(入门练习)

需求说明: 从控制台输入指定爬取的贴吧名称,起始页面,结束页面,并在文件中 创建以  贴吧名称+“爬取内容”  为名字创建文件件,里面的每一个 文件都是爬取到的每一页html文件,文件名称:贴吧名称_page.html import urllib.request import urllib.parse import os#引入os模块 tieba_name = input("请输入你要爬...

q2511130633的博客 358

R语言深度学习实战:基于YOLO的目标检测

目标检测是计算机视觉领域的一项任务,旨在识别图像或视频中的物体,并确定它们的位置。与图像分类不同,目标检测要求模型能够识别多个物体,并为每个物体提供边界框(bounding box)的位置信息。这种任务在众多应用中都具有重要价值,例如自动驾驶、安防监控、物体跟踪等。YOLO(You Only Look Once)是一种非常流行的目标检测算法,它在速度和准确性之间取得了良好的平衡。与传统的目标检测方法不同,YOLO将目标检测任务视为回归问题,直接从输入图像中预测目标的类别和位置信息。

YOLO 330

python3爬虫入门实例_循序渐进Python3(十二)--0--爬虫框架入门实例

流程分析抓取内容(百度贴吧:网络爬虫吧)页面: http://tieba.baidu.com/f?kw=%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB&ie=utf-8数据:1.帖子标题;2.帖子作者;3.帖子回复数通过观察页面html代码来帮助我们获得所需的数据内容。一、工程建立在控制台模式下进入你要建立工程的文件夹执行如下命令创建工程:scrapy start...

weixin_36277530的博客 571

Coze智能体开发:如何搭建一个生成长文本的工作流

扣子工作流提供了流程定制化的能力,我们可以把长文生成的流程拆分为多个步骤,例如先通过大模型节点生成大纲、再使用循环节点依次扩写各个段落,最后将各个段落组合起来,从而实现长文生成流程。此工作流可适用于学术写作、商业报告、小说创作等多种场景。

王国平的博客 1789

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[爬虫-python] scrapy框架入门实例-百度贴吧

这里写目录标题0. 大概流程1. 安装Scrapy2. 工程建立3. 实现过程3.1在items.py中定义自己要抓取的数据:3.2 然后在spiders目录下编辑myspider.py那个文件:3.3 执行命令 scrapy crawl [类中name值] 0. 大概流程 抓取内容(百度贴吧:网络爬虫吧) 页面: http://tieba.baidu.com/f?kw=%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB&ie=utf-8 数据:1.帖子标题;2.帖子作者;3.

Harry的博客 673

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

python入门,自制小爬虫获得百度贴吧内容

最近开始接触python,光学习语法感觉有些犯困.既然是脚本语言,还是制作一些工具好一些,而有关python,最出名的大概就是爬虫了.去网上找了一些例子,最后自己完成了一个小爬虫. 环境 : python 2.7 需求 : 获取某个帖子中的发帖内容,组合成一个网页 制作简单爬虫不需要额外下载模块,只需要导入几个自带模块就可以# -*- coding: utf-8 -*- import urllib2

csuoo的博客 666

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python爬虫入门,爬取百度贴吧网页

使用的模块 requests 代码 import requests class TieBa(): def __init__(self,tieba_name): '''接收贴吧名字''' self.tieba_name = tieba_name self.headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; ...

qq_44657868的博客 300

python爬虫怎么爬贴吧_python爬虫入门 实战(二)---爬百度贴吧

本篇涉及知识点:1、xpath语法2、正则表达式踩坑:1、xpath解析出的结点文本内容中文乱码。2、xpath解析时,结点内有多余标签,文本被截断。3、用正则表达式匹配的分组输出乱码。发送请求获取html文本内容import urllib2#目标url,这里see_lz=1代表只看楼主,pn=1代表页码为1url='https://tieba.baidu.com/p/3267113128?see...

weixin_39828960的博客 297

python爬虫入门:2--爬取百度贴吧内容

我们要爬取的是百度贴吧 –神盾局吧–中的帖子信息url = “http://tieba.baidu.com/f?kw=%E7%A5%9E%E7%9B%BE%E5%B1%80&ie=utf-8”我们往后翻页发现第二页url = “http://tieba.baidu.com/f?kw=%E7%A5%9E%E7%9B%BE%E5%B1%80&ie=utf-8&pn=50”往后页数依次累加50, 这就说明

知足常乐的博客 641

python爬虫入门 实战(二)---爬百度贴吧

http://www.jianshu.com/p/8778b144eb3f # -*- coding:utf-8 -*- import urllib import urllib2 url='https://tieba.baidu.com/p/3267113128?see_lz=1&pn=1' user_agent='Mozilla/5.0 (Windows NT 10.0; WOW64)

ssyyjj88的专栏 463
上一篇: ubuntu14.04下安装pycharm以及Oracle JDK
下一篇: 关于python文件操作
Kindle_code
博客等级 码龄12年 21粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值