爬去動(dòng)態(tài)網(wǎng)站今日頭條圖片集

2019-6-5    seo達(dá)人

如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里

如何爬去爬去今日頭條動(dòng)態(tài)數(shù)據(jù),
網(wǎng)上有很多教程,我就不在啰嗦了
第一步如何分析得到存儲(chǔ)數(shù)據(jù)的真實(shí)url
首先打開(kāi)https://www.toutiao.com/,搜索街拍,會(huì)跳轉(zhuǎn)https://www.toutiao.com/search/?keyword=%E8%A1%97%E6%8B%8D
你如果用傳統(tǒng)的方式你將的得不到任何有價(jià)值的信息
這個(gè)時(shí)候你怎么辦呢?



你這個(gè)時(shí)候注意查看requests url,
Request URL: https://www.toutiao.com/api/search/content/?aid=24&app_name=web_search&offset=0&format=json&keyword=街拍&autoload=true&count=20&en_qc=1&cur_tab=1&from=search_tab&pd=synthesis&timestamp=1559831008973
到這里我們就找到了數(shù)據(jù)春芳的真正url了
你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁(yè)。如果你想學(xué)習(xí)如何使用Markdown編輯器, 可以仔細(xì)閱讀這篇文章,了解一下Markdown的基本語(yǔ)法知識(shí)。

后面就簡(jiǎn)單了,直接上代碼
import os
import re
import json
import requests
from requests import RequestException
from requests import exceptions
from urllib.parse import urlencode
from demo01.util import buid_proxy
‘’’
抓取今日頭條圖片圖片集
因?yàn)榻裉祛^條數(shù)據(jù)是動(dòng)態(tài),因此第一步是找到存儲(chǔ)圖片的真正url
第二步就是構(gòu)造瀏覽器(偽瀏覽器),因?yàn)楝F(xiàn)在防爬網(wǎng)站做的很好,他會(huì)更具某項(xiàng)標(biāo)準(zhǔn)你是否是機(jī)器人,因此這步很重要
‘’’
proxies=buid_proxy()

def get_one_page(offset, keyword):
‘’’
獲取網(wǎng)頁(yè)html內(nèi)容并返回
‘’’
params = {
‘a(chǎn)id’: ‘24’,
‘a(chǎn)pp_name’: ‘web_search’,
‘offset’: offset,
‘format’: ‘json’,
‘keyword’:keyword,
‘a(chǎn)utoload’: ‘true’,
‘count’: ‘20’,
‘cur_tab’: ‘1’,
‘from’: ‘search_tab’,
‘pd’: ‘synthesis’,
‘timestamp’: ‘1559660659001’}

header = {
    "User-Agen":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",
    "referer":"https://www.toutiao.com/search/?keyword=%E8%A1%97%E6%8B%8D",
    "cookie":"tt_webid=6692573135994799624; UM_distinctid=16ace1c56988c-06f62adc4fd369-7a1437-144000-16ace1c5699a3; csrftoken=368635b7c1d736ff1889c2b70705afa9; tt_webid=6692573135994799624; WEATHER_CITY=%E5%8C%97%E4%BA%AC; s_v_web_id=152a5d87eb7690f9953388e50371f37b; CNZZDATA1259612802=1893030441-1558619693-https%253A%252F%252Flanding.toutiao.com%252F%7C1559662594; _ga=GA1.2.569135354.1559664708; _gid=GA1.2.419995265.1559664708; __tasessionId=wb39ej38m1559741348358",
}


url = 'https://www.toutiao.com/api/search/content/?' + urlencode(params)
#print(url)

try:
    # 獲取網(wǎng)頁(yè)內(nèi)容,返回json格式數(shù)據(jù)
    response = requests.get(url, headers=header,proxies=proxies)

    # 通過(guò)狀態(tài)碼判斷是否獲取成功
    if response.status_code == 200:
        #此處必須這樣寫(xiě)不然會(huì)出現(xiàn)中文亂碼
        response=response.content.decode('utf-8')
        html=response

        return html
    return None
except RequestException:
    return None

def parse_one_page(html):
‘’’
解析出組圖網(wǎng)址,并將網(wǎng)頁(yè)中所有圖集的標(biāo)題及圖片地址返回
‘’’
urls = []
data = json.loads(html,encoding=‘utf-8’)
if data and ‘data’ in data.keys():
for item in data.get(‘data’):
#print(item)
page_urls = []
title = item.get(‘title’)
#print(title)
image_list = item.get(‘image_list’)
if image_list !=None:
for i in range(len(image_list)):
# 獲取large圖片地址
url = image_list[i][‘url’]
# 替換URL獲取高清原圖
url = url.replace(‘large’, ‘origin’)
page_urls.append(url)
urls.append({‘title’: title,‘url_list’: page_urls})
return urls

def save_image_file(url, path):
‘’’
保存圖像文件
‘’’
ir = requests.get(url)
if ir.status_code == 200:
with open(path, ‘wb’) as f:
f.write(ir.content)
f.close()

def main(offset, word):
html = get_one_page(offset, word)
#print(html)

urls = parse_one_page(html)
print(urls)

#圖像文件夾不存在則創(chuàng)建
root_path = 'E:/test001/photo/TOUTIAO'
if not os.path.exists(root_path):
    os.mkdir(root_path)

for i in range(len(urls)):
    print('---正在下載 %s'%urls[i]['title'])
    folder = root_path + '/' + urls[i]['title']
    if not os.path.exists(folder):
        try:
            os.mkdir(folder)
        except NotADirectoryError:
            continue
        except OSError:
            continue

    url_list = urls[i]['url_list']
    try:
        for j in range(len(url_list)):
            path = folder + '/index_' + str("%02d"%j) + '.jpg'
            if not os.path.exists(path):
                save_image_file(urls[i]['url_list'][j], path)
    except exceptions.ProxyError:
        return  None


if name == ‘main’:
main(0,‘街拍’)

新的改變
我們對(duì)Markdown編輯器進(jìn)行了一些功能拓展與語(yǔ)法支持,除了標(biāo)準(zhǔn)的Markdown編輯器功能,我們?cè)黾恿巳缦聨c(diǎn)新功能,幫助你用它寫(xiě)博客:

全新的界面設(shè)計(jì) ,將會(huì)帶來(lái)全新的寫(xiě)作體驗(yàn);
在創(chuàng)作中心設(shè)置你喜愛(ài)的代碼高亮樣式,Markdown 將代碼片顯示選擇的高亮樣式 進(jìn)行展示;
增加了 圖片拖拽 功能,你可以將本地的圖片直接拖拽到編輯區(qū)域直接展示;
全新的 KaTeX數(shù)學(xué)公式 語(yǔ)法;
增加了支持甘特圖的mermaid語(yǔ)法1 功能;
增加了 多屏幕編輯 Markdown文章功能;
增加了 焦點(diǎn)寫(xiě)作模式、預(yù)覽模式、簡(jiǎn)潔寫(xiě)作模式、左右區(qū)域同步滾輪設(shè)置 等功能,功能按鈕位于編輯區(qū)域與預(yù)覽區(qū)域中間;
增加了 檢查列表 功能。
功能快捷鍵
撤銷(xiāo):Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜體:Ctrl/Command + I
標(biāo)題:Ctrl/Command + Shift + H
無(wú)序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
檢查列表:Ctrl/Command + Shift + C
插入代碼:Ctrl/Command + Shift + K
插入鏈接:Ctrl/Command + Shift + L
插入圖片:Ctrl/Command + Shift + G

合理的創(chuàng)建標(biāo)題,有助于目錄的生成
直接輸入1次#,并按下space后,將生成1級(jí)標(biāo)題。
輸入2次#,并按下space后,將生成2級(jí)標(biāo)題。
以此類(lèi)推,我們支持6級(jí)標(biāo)題。有助于使用TOC語(yǔ)法后生成一個(gè)完美的目錄。

如何改變文本的樣式
強(qiáng)調(diào)文本 強(qiáng)調(diào)文本

加粗文本 加粗文本

標(biāo)記文本

刪除文本

引用文本

H2O is是液體。

210 運(yùn)算結(jié)果是 1024.

插入鏈接與圖片
鏈接: link.

圖片: 

帶尺寸的圖片: 

居中的圖片: 

居中并且?guī)С叽绲膱D片: 

當(dāng)然,我們?yōu)榱俗層脩舾颖憬?,我們?cè)黾恿藞D片拖拽功能。

如何插入一段漂亮的代碼片
去博客設(shè)置頁(yè)面,選擇一款你喜歡的代碼片高亮樣式,下面展示同樣高亮的 代碼片.

// An highlighted block
var foo = 'bar';
1
2
生成一個(gè)適合你的列表
項(xiàng)目
項(xiàng)目
項(xiàng)目
項(xiàng)目1
項(xiàng)目2
項(xiàng)目3
 計(jì)劃任務(wù)
 完成任務(wù)
創(chuàng)建一個(gè)表格
一個(gè)簡(jiǎn)單的表格是這么創(chuàng)建的:

項(xiàng)目 Value
電腦 $1600
手機(jī) $12
導(dǎo)管 $1
設(shè)定內(nèi)容居中、居左、居右
使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左
SmartyPants
SmartyPants將ASCII標(biāo)點(diǎn)字符轉(zhuǎn)換為“智能”印刷標(biāo)點(diǎn)HTML實(shí)體。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash
創(chuàng)建一個(gè)自定義列表
Markdown
Text-to-HTML conversion tool
Authors
John
Luke
如何創(chuàng)建一個(gè)注腳
一個(gè)具有注腳的文本。2

注釋也是必不可少的
Markdown將文本轉(zhuǎn)換為 HTML。

KaTeX數(shù)學(xué)公式
您可以使用渲染LaTeX數(shù)學(xué)表達(dá)式 KaTeX:

Gamma公式展示 Γ(n)=(n?1)!?n∈N \Gamma(n) = (n-1)!\quad\foralln\in\mathbb NΓ(n)=(n?1)!?n∈N 是通過(guò)歐拉積分

Unexpected text node: ' 'Unexpected text node: ' '
Γ(z)=∫ 
0


 t 
z?1
 e 
?t
 dt.

你可以找到更多關(guān)于的信息 LaTeX 數(shù)學(xué)表達(dá)式here.

新的甘特圖功能,豐富你的文章
Mon 06
Mon 13
Mon 20
已完成
進(jìn)行中
計(jì)劃一
計(jì)劃二
現(xiàn)有任務(wù)
Adding GANTT diagram functionality to mermaid
關(guān)于 甘特圖 語(yǔ)法,參考 這兒,
UML 圖表
可以使用UML圖表進(jìn)行渲染。 Mermaid. 例如下面產(chǎn)生的一個(gè)序列圖::

張三
李四
王五
你好!李四, 最近怎么樣?
你最近怎么樣,王五?
我很好,謝謝!
我很好,謝謝!
李四想了很長(zhǎng)時(shí)間,文字太長(zhǎng)了不適合放在一行.
打量著王五...
很好... 王五, 你怎么樣?
張三
李四
王五
這將產(chǎn)生一個(gè)流程圖。:

鏈接
長(zhǎng)方形

圓角長(zhǎng)方形
菱形
關(guān)于 Mermaid 語(yǔ)法,參考 這兒,
FLowchart流程圖
我們依舊會(huì)支持flowchart的流程圖:

開(kāi)始
我的操作
確認(rèn)?
結(jié)束
yes
no
關(guān)于 Flowchart流程圖 語(yǔ)法,參考 這兒.
導(dǎo)出與導(dǎo)入
導(dǎo)出
如果你想嘗試使用此編輯器, 你可以在此篇文章任意編輯。當(dāng)你完成了一篇文章的寫(xiě)作, 在上方工具欄找到 文章導(dǎo)出 ,生成一個(gè).md文件或者.html文件進(jìn)行本地保存。

導(dǎo)入
如果你想加載一篇你寫(xiě)過(guò)的.md文件或者.html文件,在上方工具欄可以選擇導(dǎo)入功能進(jìn)行對(duì)應(yīng)擴(kuò)展名的文件導(dǎo)入,
繼續(xù)你的創(chuàng)作。

mermaid語(yǔ)法說(shuō)明 ??

注腳的解釋 ??
藍(lán)藍(lán)設(shè)計(jì)bouu.cn )是一家專(zhuān)注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)。

分享本文至:

日歷

鏈接

個(gè)人資料

存檔