1. 程式人生 > >python 爬蟲, 抓取百度美女吧圖片

python 爬蟲, 抓取百度美女吧圖片

# ----2018-7-15 ------世界盃總決賽
import requests
from lxml import etree
import re


class TiBa_Image(object):


    # 建立同意方法
    def __init__(self):
        self.base_url = 'http://tieba.baidu.com/f'
        self.second_url = 'https://tieba.baidu.com'
        self.headers = {"User-Agent": '"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"'}
        self.first_xpath = '''//div[@class="grbm_row_wrapper"]/div[@class="grbm_ele_wrapper"]/a[@class="grbm_ele_a grbm_ele_big"]/@href'''
        self.second_xpath = '//div[@class="ag_main_list"]/div/a/@href'

    #傳送請求
    def send_request(self,url, params=None):
        response = requests.get(url, params=params, headers=self.headers)
        # 解析資料
        data = response.content.decode()
        return data

    #儲存檔案,以檔名儲存
    def write_file(self, data, pic_id, i):
        pic_id = str(pic_id)
        flie_name = "image/" + pic_id + "/" + str(i) + '.jpg'
        print(flie_name)
        with open(flie_name, 'wb') as f:
            f.write(data)
            print('儲存成功')

    #解析資料   //div[@class="grbm_ele_wrapper"]/a/@href
    def JieXi_data(self, data, xpath_str):
        #1.轉換型別
        html_data = etree.HTML(data)
        #2.解析  ----所有的主頁圖片連線
        result_list = html_data.xpath(xpath_str)
        # 3.返回資料
        return result_list

    #首頁
    def Home_Page(self):
        # 1.傳送請求
        dict_parms = {
            "kw": "美女",
            "ie": "utf-8",
            "tab": "album",
        }
        data = self.send_request(self.base_url,dict_parms)
        # 正則替換註釋資料
        # re_data = re.compile('<!--.*', re.S)
        data = re.sub('<!--.*', '', data)
        details_url_list = self.JieXi_data(data, self.first_xpath)
        # 返回每頁資料
        return details_url_list

    #拼接每張圖片
    def Details_Page(self):
        details_url_list = self.Home_Page()
        #url----/p/1879660227
        for details_url in details_url_list:
            # 得到每一個數據--url   https://tieba.baidu.com/+....
            details = re.sub('/p/', '', details_url)
            import os
            os.mkdir('image/' + details)
            print(details)
            params = {
                "kw": "美女",
                "alt": "jview",
                "tid": str(details),
            }
            r = requests.get('http://tieba.baidu.com/photo/g/bw/picture/list', params=params).text
            pattern = re.compile(r'"pic_id":"(.*?)"')
            result = pattern.findall(r)
            i = 1
            for pic_id in result:
                url = 'https://imgsa.baidu.com/forum/pic/item/{}.jpg'.format(pic_id)
                img_bytes = requests.get(url=url).content
                self.write_file(img_bytes, details, i)
                i += 1
    # 啟動
    def run(self):
       self.Details_Page()


if __name__ == '__main__':
    TiBa_Image().run()



相關推薦

python 爬蟲, 美女圖片

# ----2018-7-15 ------世界盃總決賽 import requests from lxml import etree import re class TiBa_Image(object):     # 建立同意方法     def __init__(

實戰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

Python簡易爬蟲圖片

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

Python爬蟲-爬

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

python爬蟲(入門練習)

需求說明: 從控制檯輸入指定爬取的貼吧名稱,起始頁面,結束頁面,並在檔案中 建立以  貼吧名稱+“爬取內容”  為名字建立檔案件,裡面的每一個 檔案都是爬取到的每一頁html檔案,檔名稱:貼吧名稱_page.html import urllib.reque

python爬蟲,獲取圖片

直接上程式碼: #!/usr/bin/env python # -*- coding:utf-8 -*- import urllib import urllib2 from lxml import etree def loadPage(url):

Python爬蟲系列之

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

BeautifulSoup

爬蟲 python beautifulsoup 百度貼吧 BeautifulSoup是python一種原生的解析文件的模塊,區別於scrapy,scrapy是一種封裝好的框架,只需要按結構進行填空,而BeautifulSoup就需要自己造輪子,相對scrapy麻煩一點但也更加靈活一些以爬取百度

Python爬蟲 - 爬html代碼前200行

http src mage bsp bubuko str 百度 爬蟲 圖片 Python爬蟲 - 爬取百度html代碼前200行 - 改進版, 增加了對字符串的.strip()處理 Python爬蟲 - 爬取百度html代碼前200行

PHP爬蟲-爬首頁違規主題貼

因為是第一次寫,感覺有點冗餘。不過嘛,本文章主要面向不知道爬蟲為何物的小夥伴。o(∩_∩)o <?php $url='http://tieba.baidu.com/f?ie=utf-8&kw=php&fr=search'; // 地址 $html = file_ge

Python圖片指令碼

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

Python爬蟲搜索內容介面-xpath

百度爬蟲搜尋介面1.0版 百度爬蟲搜尋介面1.0版: 通過百度關鍵字遍歷到一級頁面的url 通過百度關鍵字遍歷到一級頁面的title標題 通過百度關鍵字遍歷到一級頁面的text文字 爬取思路 拼接url 經過測試,初始時拼接url,只需要加入keyword

python爬蟲圖片

爬蟲爬取百度圖片 因公司業務需要,而且公司人手不足,我這個測試工程師需要臨時客串一下其他職位,所以,由我來爬取百度圖片。 說明 1、最近稍微有點兒忙,沒顧得上整理。而且程式碼量比較少,所以註釋比較少。 2、如果需要直接使用我的程式碼,請將相應路徑檔名稱更改。具體

編寫爬蟲帖子的學習筆記

再接再厲,再次使用python3學習編寫了一個爬取百度貼吧帖子的程式,不多說,直接上關鍵程式碼 #抓取貼吧一個帖子上的內容(一頁內容) import urllib import urllib.req

使用python爬蟲手機助手網站中app的資料

一、爬取程式流程圖 爬蟲程式流程圖如下: Created with Raphaël 2.1.0開始分析地址結構獲得app類別頁的url爬取app詳情頁url爬取App詳情頁的資料將爬取資料儲存到json檔案結束 二、具體步驟 1.分析

網路爬蟲簡單的實現爬圖片

我們要爬取的網站是https://tieba.baidu.com/p/3797994694 首先爬取第一頁的圖片,使用python3自帶庫urllib,詳細的程式碼如下: 接下來爬去多頁的圖片,這裡我們選取五頁的圖片,這裡我們採用requests,beautifuls

Python爬蟲--單一頁面上的圖片文件學習

python 爬蟲 #!/usr/bin/python import sys #正則表達式庫 import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() ret

XPath:爬圖片,並儲存本地

使用XPath,我們可以先將 HTML檔案 轉換成 XML文件,然後用 XPath 查詢 HTML 節點或元素。 什麼是XML XML 指可擴充套件標記語言(EXtensible Markup

圖片

本次文章內容是爬取貼吧圖片,希望對大家有所幫助 使用環境:我用的是python2.7.9 在Python 3以後的版本中,urllib2這個模組已經不單獨存在(也就是說當你import urllib2時,系統提示你沒這個模組),urllib2被合併到了urllib中。 url

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

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