1. 程式人生 > >Python爬蟲之百度貼吧

Python爬蟲之百度貼吧

目標:
1、對百度貼吧的任意帖子進行爬取
2、爬取帖子指定內容
3、將爬取內容儲存到檔案

1、分析url

這裡寫圖片描述

https://tieba.baidu.com/p/3138733512?see_lz=1&pn=1
分析:
https:傳輸協議
tieba.baidu.com:百度二級域名
p/3138733512:資源定位
see_lz=1&pn=1:引數see_lz:樓主 pn=1:第一頁

2、頁面抓取

上程式碼:

# coding=utf-8
import urllib
import urllib2
import re
#百度貼吧爬蟲類
class
BDTB:
#初始化,傳入基地址,是否看樓主的引數 def __init__(self, baseUrl, seeLZ): self.baseURL = baseUrl self.seeLZ = '?see_lz='+str(seeLZ) #傳入頁碼,獲取該頁帖子的程式碼 def getPage(self,pageNum): try: url = self.baseURL+self.seeLZ+'&pn'+str(pageNum) request = urllib2.Request(url) response = urllib2.urlopen(request) result = response.read() print(result) return
result except urllib2.URLError,e: if hasattr(e,"reason"): print u"連線百度貼吧失敗,錯誤原因",e.reason return None baseURL = 'http://tieba.baidu.com/p/3138733512' bdtb = BDTB(baseURL,1) bdtb.getPage(1)

print(result)這句是輸出原始碼
執行程式:
這裡寫圖片描述

3、 提取相關資訊

提取貼吧標題
谷歌瀏覽器按F12,查詢標題的html程式碼
這裡寫圖片描述

<h3 class="core_title_txt pull-left text-overflow  " title="純原創我心中的NBA2014-2015賽季現役50大" style="width: 396px">純原創我心中的NBA2014-2015賽季現役50大</h3>

所以我們想提取 h1標籤中的內容,同時還要指定這個class確定唯一,因為h1標籤實在太多啦。
正則表示式如下:

<h3 class="core_title_txt.*?>(.*?)</h3>

獲取標題程式碼

 #獲取帖子標題
    def getTitle(self):
        page = self.getPage(1)
        pattern = re.compile('<h3 class="core_title_txt.*?>(.*?)</h3>',re.S)
        result = re.search(pattern,str(page))
        if result:
            print result.group(1)  # 測試輸出
            return result.group(1).strip()
        else:
            return None

完整程式碼:

# coding=utf-8
import urllib
import urllib2
import re
#百度貼吧爬蟲類
class BDTB:
    #初始化,傳入基地址,是否看樓主的引數
    def __init__(self, baseUrl, seeLZ):
        self.baseURL = baseUrl
        self.seeLZ = '?see_lz='+str(seeLZ)
    #傳入頁碼,獲取該頁帖子的程式碼
    def getPage(self,pageNum):
        try:
            url = self.baseURL+self.seeLZ+'&pn'+str(pageNum)
            request = urllib2.Request(url)
            response = urllib2.urlopen(request)
            result =  response.read()
            return result
        except urllib2.URLError,e:
            if hasattr(e,"reason"):
                print u"連線百度貼吧失敗,錯誤原因",e.reason
                return None
    #獲取帖子標題
    def getTitle(self):
        page = self.getPage(1)
        pattern = re.compile('<h3 class="core_title_txt.*?>(.*?)</h3>',re.S)
        result = re.search(pattern,str(page))
        if result:
            print result.group(1)  # 測試輸出
            return result.group(1).strip()
        else:
            return None
baseURL = 'http://tieba.baidu.com/p/3138733512'
bdtb = BDTB(baseURL,1)
bdtb.getPage(1)
bdtb.getTitle()



執行:
這裡寫圖片描述

相關推薦

Python爬蟲

目標: 1、對百度貼吧的任意帖子進行爬取 2、爬取帖子指定內容 3、將爬取內容儲存到檔案 1、分析url https://tieba.baidu.com/p/3138733512?se

Python爬蟲 -下載圖片

先放上程式的程式碼 import urllib.request import os import easygui as g import re def url_open(url): req = urllib.request.Request(url)

Python爬蟲系列爬取

今天給的一個爬蟲小事例,貼吧段子爬取這樣一個小功能,資料呢僅僅娛樂,沒有惡意想法 若有侵權,請私信刪除 此次用到的一個解析庫Beautiful Soup,更輕量簡單地對資料進行解析,已獲得目標資料 貼吧做的還是比較好,有一定的反爬機制,所以我們也應該有一定的應對措施

Python爬取數據

utf-8 支持我 family encode code word keyword 上一條 時間   本渣除了工作外,在生活上還是有些愛好,有些東西,一旦染上,就無法自拔,無法上岸,從此走上一條不歸路。花鳥魚蟲便是我堅持了數十年的愛好。   本渣還是需要上班,才能支持我的

爬蟲10-

""" __title__ = '' __author__ = 'Thompson' __mtime__ = '2018/8/21' # code is far away from bugs with the god animal protecting I love animals. The

python爬取指定內容

環境:python3.6 1:抓取百度貼吧—linux吧內容 基礎版 抓取一頁指定內容並寫入檔案 萌新剛學習Python爬蟲,做個練習 貼吧連結: http://tieba.baidu.com/f?kw=linux&ie=utf-8&pn=0 解析原始碼使用的是B

【Python3爬蟲爬蟲

1 import requests 2 import time 3 import re 4 from selenium import webdriver 5 6 headers = { 7 "user-agent": "Mozilla/5.0 (Windows NT 6.

Python爬取標題

# -*- coding: utf-8 -*- """ Created on Sun Nov 4 10:22:07 2018 @author: wangf """ from urllib.request import urlopen import codecs from

Python爬取圖片指令碼

新手,以下是爬取百度貼吧制定帖子的圖片指令碼,因為指令碼主要是解析html程式碼,因此一旦百度修改頁面前端程式碼,那麼指令碼會失效,權當爬蟲入門練習吧,後續還會嘗試更多的爬蟲。 # coding=ut

Python爬取回帖中的微訊號(基於簡單http請求)

作者:草小誠 轉載請注原文地址:https://blog.csdn.net/cxcjoker7894/article/details/85685115 前些日子媳婦兒有個需求,想要一個任意貼吧近期主題帖的所有回帖中的微訊號,用來做一些微商的操作,你懂的。因為有些貼吧專門就是

Python爬取的圖片

Python是一個弱型別的動態語言 下面是我的第一個簡單的爬蟲指令碼程式 #coding=gbk #匯入re和urlLib兩個庫 import re import urllib #定義一個有參的獲得圖片的方法,方法名為getImg def getImg(url):

Python簡易爬蟲爬取圖片

decode works 接口 def 讀取 min baidu 得到 internal       通過python 來實現這樣一個簡單的爬蟲功能,把我們想要的圖片爬取到本地。(Python版本為3.6.0) 一.獲取整個頁面數據    def getHtml(url)

Python爬蟲實例(一)爬取帖子中的圖片

選擇 圖片查看 負責 targe mpat wid agent html headers 程序功能說明:爬取百度貼吧帖子中的圖片,用戶輸入貼吧名稱和要爬取的起始和終止頁數即可進行爬取。 思路分析: 一、指定貼吧url的獲取 例如我們進入秦時明月吧,提取並分析其有效url如下

python 爬蟲 簽到小工具

sca window user con lee post use wow64 搜索 import requests,re,timeheader ={ "Cookie":"登陸過賬號後的cookie 必須填寫", "User-Agent":"Mozilla/5.

Python實現簡單爬蟲功能--批量下載裡的圖片

在上網瀏覽網頁的時候,經常會看到一些好看的圖片,我們就希望把這些圖片儲存下載,或者使用者用來做桌面桌布,或者用來做設計的素材。   我們最常規的做法就是通過滑鼠右鍵,選擇另存為。但有些圖片滑鼠右鍵的時候並沒有另存為選項,還有辦法就通過就是通過截圖工具擷取下來,但這樣就降低圖片的清晰度

Python爬蟲-爬取

方法 eba style name urlopen for pri url pen 爬取百度貼吧 ===================== ===== 結果示例: ===================================== 1 ‘‘‘ 2 爬去百

Python爬蟲教程:爬取

貼吧爬取 寫程式碼前,構思需要的功能塊;寫程式碼時,把各個功能模組名提前寫好 初始化 初始化必要引數,完成基礎設定 爬取百度貼吧lol吧:爬取地址中的get引數須傳遞(可以指定不同主題的貼吧和頁碼) 主題名 初始網址 請求頭 生成網址 生成每一頁的路由

Python爬蟲例項:從下載多頁話題內容

上週網路爬蟲課程中,留了一個實踐:從百度貼吧下載多頁話題內容。我完成的是從貼吧中一個帖子中爬取多頁內容,與老師題目要求的從貼吧中爬取多頁話題還是有一定區別的,況且,在老師講評之後,我瞬間就發現了自己跟老師程式碼之間的差距了,我在程式碼書寫上還是存在很多不規範不嚴謹的地方,而且

Python爬蟲--- 1.5 爬蟲實踐: 獲取內容

原文連結:https://www.fkomm.cn/article/2018/7/22/21.html 經過前期大量的學習與準備,我們重要要開始寫第一個真正意義上的爬蟲了。本次我們要爬取的網站是:百度貼吧,一個非常適合新人練手的地方,那麼讓我們開始吧。 本次要爬的貼吧是<< 西

實戰python 爬蟲爬取圖片

#!/usr/bin/python import urllib,urllib2import re def getHtml(url): page = urllib2.urlopen(url) return page.read() def getImage(html): re_img = re.compil