Python 爬虫学习(5)Go!Go!Crawl Pixiv

参考四月党同好的crawl思路 ,爬取URL:https://www.pixiv.net/search.php?s_mode=s_tag&word=%E5%AE%AB%E5%9B%AD%E8%96%B0

1).模拟登录 pixiv登录入口

analysis.jpg

解析DOM结构时,未发现表单字段name值,模拟表单post,
email字段name值为pixiv_id,password的name值为password


fromdata

分析URL

测试是否允许跟踪Cookies(ps:这里用题主的账号测试,求不黑)

import requests
session = requests.Session()
params ={'pixiv_id':'2664504212@qq.com','password':'knxy0616'}
s = session.post("https://accounts.pixiv.net/login?lang=zh&source=pc&view_type=page&ref=wwwtop_accounts_index",params)
print("Cookies is set to:")
print(s.cookies.get_dict())
print("-------------------")
print("Going to Page")
s = session.get("https://www.pixiv.net/setting_profile.php")
print(s.text)

console output

C:\Users\26645\AppData\Local\Programs\Python\Python36\python.exe F:/pythonProject/PixivSpider/PixivChange.py
Cookies is set to:
{'PHPSESSID': '215f3e623ac9dda164ba310349d62f34', 'p_ab_id': '7', 'p_ab_id_2': '0'}
-------------------
Going to Page
<!DOCTYPE html>
<!-- https://bugbounty.jp/program/0602f8c6f136dbbd92fbb909 --><html lang="ja" class=" page-cool-index" xmlns:wb="http://open.weibo.com/wb">
<head>



<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=970">


<meta name="format-detection" content="telephone=no">
<meta property="og:site_name" content="pixiv">
<meta property="fb:app_id" content="140810032656374">
<meta property="wb:webmaster" content="4fd391fccdb49500" />
                        <meta property="twitter:card" content="summary_large_image">
                                <meta property="twitter:site" content="@pixiv">
                                <meta property="twitter:title" content="イラストコミュニケーションサービス [pixiv]">
                                <meta property="twitter:description" content="pixiv(ピクシブ)は、作品の投稿・閲覧が楽しめる「イラストコミュニケーションサービス」です。幅広いジャンルの作品が投稿され、ユーザー発の企画やメーカー公認のコンテストが開催されています。">
                                <meta property="twitter:image" content="https://source.pixiv.net/www/images/share/pictures.jpg">
                                                <meta property="og:title" content="イラストコミュニケーションサービス [pixiv]">
                                <meta property="og:type" content="website">
                                <meta property="og:description" content="pixiv(ピクシブ)は、作品の投稿・閲覧が楽しめる「イラストコミュニケーションサービス」です。幅広いジャンルの作品が投稿され、ユーザー発の企画やメーカー公認のコンテストが開催されています。">
                                <meta property="og:image" content="https://source.pixiv.net/www/images/share/pictures.jpg">
                    
<meta name="application-name" content="pixiv">
<meta name="msapplication-tooltip" content="イラストコミュニケーションサービス">
<meta name="msapplication-starturl" content="https://www.pixiv.net/"><meta name="msapplication-navbutton-color" content="#0096db">
<meta name="msapplication-task" content="name=作品投稿;action-uri=https://www.pixiv.net/upload.php;icon-uri=https://source.pixiv.net/www/images/ico/upload.ico">
<meta name="msapplication-task" content="name=作品管理;action-uri=https://www.pixiv.net/member_illust.php;icon-uri=https://source.pixiv.net/www/images/ico/settings.ico">
<meta name="msapplication-task" content="name=ブックマーク;action-uri=https://www.pixiv.net/bookmark.php;icon-uri=https://source.pixiv.net/www/images/ico/bookmarks.ico">
<meta name="msapplication-task" content="name=受信箱;action-uri=https://www.pixiv.net/msgbox.php;icon-uri=https://source.pixiv.net/www/images/ico/messages.ico">
<meta name="msapplication-task" content="name=フィード;action-uri=https://www.pixiv.net/stacc/;icon-uri=https://source.pixiv.net/www/images/ico/stacc.ico">

    <meta name="google" content="nositelinkssearchbox">

<title>イラスト コミュニケーションサービス[pixiv(ピクシブ)]</title>
<meta name="keywords" content="pixiv,ピクシブ,イラスト,イラストレーション,マンガ,漫画,manga,コミュニティ,SNS,投稿,コンテスト">
<meta name="description" content="pixiv(ピクシブ)は、作品の投稿・閲覧が楽しめる「イラストコミュニケーションサービス」です。幅広いジャンルの作品が投稿され、ユーザー発の企画やメーカー公認のコンテストが開催されています。">

<script>
var pageLoadStartTime = +(new Date);
</script>

<script>
    console && console.log && console.log("https://bugbounty.jp/program/0602f8c6f136dbbd92fbb909"); </script>

    <link rel="alternate" media="only screen and (max-width: 640px)" href="https://touch.pixiv.net/index.php?return_to=%2Fsetting_profile.php" >
    <link rel="canonical" href="https://www.pixiv.net/">

<link rel="shortcut icon" type="image/vnd.microsoft.icon" href="https://www.pixiv.net/favicon.ico">






<script>
!function(){"use strict";function a(){for(var a=[/\bMSIE\b/,/\bBingPreview\b/],b=0,c=a;b<c.length;b++){if(c[b].test(navigator.userAgent))return!0}return!1}function b(a,b){var c=b?"Promise.reject: ":"";if(d(a))return c+["type: "+a.type,f(a.target)?"target: {src: "+a.target.src+"}":"target: "+a.target,"currentTarget: "+a.currentTarget,"eventPhase: "+a.eventPhase].join(", ");if(e(a))return c+a.toString();if("object"==typeof a)try{return c+JSON.stringify(a)}catch(g){}return c+a}function c(a,b){return Object.prototype.toString.call(a)==="[object "+b+"]"}function d(a){return!!c(a,"Event")||/^\[object \w+Event\]$/.test(Object.prototype.toString.call(a))}function e(a){return c(a,"Error")}function f(a){return c(a,"HTMLScriptElement")}window.ErrorLogger=function(){function c(a,b,c){this.userId=a,this.production=b,this.premium=c,b?(this.service="www.pixiv.net",this.api="https://www.pixiv.net/rpc/js_error.php"):(this.service=location.host,this.api="/rpc/js_error.php")}return c.prototype.install=function(){var b=this;if(!a()){var c=!1;window.onerror=function(a,d,e,f,g){window.onerror=null,b.handle(a,d,e,f,g,c)};var d=function(a){e(a.reason)&&(c||(c=!0,setTimeout(function(){throw a.reason})))};window.onunhandledrejection=d,window.addEventListener&&window.addEventListener("unhandledrejection",d)}},c.prototype.time=function(a,b,c){this.send("js_time",location.href,0,a,b,c)},c.prototype.send=function(a,c,d,e,f,g,h){var i=encodeURIComponent;try{var j=b(a,!!h),k=["service="+i(this.service),"message="+i(j),"url="+i(""+c),"line="+i(""+d),"location="+i(location.href),"user_id="+i(this.userId),"premium="+this.premium];null!=e&&k.push("html_end_sec="+i(""+e),"dom_ready_sec="+i(""+(f||0)),"onload_sec="+i(""+(g||0))),(new Image).src=this.api+"?"+k.join("&")}catch(l){(new Image).src=this.api+"?service="+i(this.service)+"&message="+i("send error: "+l.message)+"&line="+i(""+(l.line||""))}},c.prototype.handle=function(a,b,c,d,e,f){if(b||0!==c){var g=null!=e?e:a;this.production?this.send(g,b,c,undefined,undefined,undefined,!!f):"undefined"!=typeof console&&console&&console.debug?"undefined"!=typeof navigator&&navigator.userAgent.match(/Firefox\//)&&console.error(g):alert(["[JavaScript Error]","",g,"",(b||"unknown")+":"+(c||"unknown"),"","---",location.href].join("\n"))}},c}()}();
    </script><script>
(function() {
    var h = new ErrorLogger("",true,0);
    delete window.ErrorLogger;
    h.install();

    window._time = function () { h.time.apply(h, arguments) };
    window._send = function () { h.send.apply(h, arguments) };
})()
</script>

<!--[if IE 8]>
    <link rel="stylesheet" href="https://source.pixiv.net/www/css/ie.css?9955c9072470e7612f9192fb8238fa08">
<![endif]-->
<!--[if IE 9]>
    <link rel="stylesheet" href="https://source.pixiv.net/www/css/ie9.css?e2871da6753d43533b513cdac2d82a38">
<![endif]-->




<!--[if lte IE 8]>
    <script src="https://source.pixiv.net/www/js/lib/html5shiv/html5shiv.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
    <script src="https://source.pixiv.net/www/js/lib/svg4everybody/svg4everybody.ie8.js"></script>
<!--<![endif]-->

<script>
    Object.defineProperty(window, 'bundle_public_path', {
        value: "https:\/\/source.pixiv.net\/www\/js\/bundle\/"
    })
</script>

<link rel="stylesheet" href="https://source.pixiv.net/www/js/bundle/app.826b11dbfb9b59b8f927e42397790e96.css">
<script src="https://source.pixiv.net/www/js/bundle/bootstrap.339540ab3f02832e3b02.js" crossorigin="anonymous"></script>
<script src="https://source.pixiv.net/www/js/bundle/lib.39b9f9b70abb49df7d92.js" crossorigin="anonymous"></script>
<script src="https://source.pixiv.net/www/js/bundle/colon.74b72b6a439a1014ee2c.js" crossorigin="anonymous"></script>
<script src="https://source.pixiv.net/www/js/bundle/app.a8874808f2e169fbdc82.js" crossorigin="anonymous"></script>

<!--[if lte IE 9]>
    <script src="https://source.pixiv.net/www/js/lib/ajaxhooks/xdr.js"></script>
<![endif]-->

<script>
    pixiv.development = false;
    pixiv.sourcePath = "https:\/\/source.pixiv.net\/www\/";
    pixiv.commonSourcePath = "https:\/\/source.pixiv.net\/common\/";
    pixiv.config.sketchUrlBase = "https:\/\/sketch.pixiv.net";
    pixiv.context.token = "6d5f43b58dbdd4f240a55565c6c1c9f8";
        </script>
    <script>
        pixiv.user.loggedIn = false;
        
        pixiv.ads = {};
        pixiv.ads.is_active_www_illustup = false;
    </script>

<script>
    
var _gaq = _gaq || [];

(function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();




_gaq.push(['_setAccount', 'UA-1830249-3']);
_gaq.push(['_setDomainName', 'pixiv.net']);




if (window.pixiv) {
    if (pixiv.user && pixiv.user.loggedIn) {
        _gaq.push(['_setCustomVar', 1, 'login', 'yes', 3]);
        _gaq.push(['_setCustomVar', 3, 'plan', pixiv.user.premium ? 'premium' : 'normal', 1]);
        _gaq.push(['_setCustomVar', 5, 'gender', pixiv.user.gender, 1]);
        _gaq.push(['_setCustomVar', 6, 'user_id', pixiv.user.id, 1]);
        _gaq.push(['_setCustomVar', 12, 'illustup_flg', pixiv.user.illustup_flg ? 'uploaded' : 'not_uploaded', 3]);
    } else {
        _gaq.push(['_setCustomVar', 1, 'login', 'no', 3]);
    }

    
    

    (function() {
        // クッキーあれば、一回でもログインした人とみなす
        if (pixiv.user && window.colon && colon.storage) {
            var cookie_name = 'login_ever';

            if (colon.storage.cookie(cookie_name)) {// 一度でもログインしたことある
                _gaq.push(['_setCustomVar', 2, 'login ever', 'yes', 1]);

            } else if (pixiv.user.loggedIn) { // ログインしてる
                colon.storage.cookie(cookie_name, 'yes', {
                    expires: 1000 * 60 * 60 * 24 * 365 * 5, // 5 years
                    domain: location.hostname
                });
                _gaq.push(['_setCustomVar', 2, 'login ever', 'yes', 1]);

            } else { // ログインしたこと無いし、ログインしてもない
                _gaq.push(['_setCustomVar', 2, 'login ever', 'no', 1]);
            }

            
            var p_ab_id = colon.storage.cookie('p_ab_id');
            var p_ab_id_2 = colon.storage.cookie('p_ab_id_2');
            _gaq.push(['_setCustomVar', 9, 'p_ab_id', p_ab_id, 1]);
            _gaq.push(['_setCustomVar', 10, 'p_ab_id_2', p_ab_id_2, 1]);
        }
    } ())

    _gaq.push(['_setCustomVar', 11, 'lang', "ja", 1]);
}



if (window.pixiv && pixiv.tracking && pixiv.tracking.URL) {
    _gaq.push(['_trackPageview', pixiv.tracking.URL]);
} else {
    _gaq.push(['_trackPageview']);
}


</script>
<script>
    
if (window.pixiv && !pixiv.text) pixiv.text = {};


    pixiv.text.modalDefaultCaption = '他にも便利な機能がいっぱい!';

    pixiv.text.registerMypixiv = 'pixivに登録して<br>ユーザーとマイピクになろう!!!!';
    pixiv.text.loginMypixiv    = 'pixivにログインして<br>ユーザーにマイピク申請しよう!!!!';

    pixiv.text.registerFavorite = 'pixivに登録して<br>ユーザーをフォローしよう!!!!';
    pixiv.text.loginFavorite    = 'pixivにログインして<br>ユーザーをフォローしよう!!!!';

    pixiv.text.registerMessage = 'pixivに登録して<br>ユーザーにメッセージを送ろう!!!!';
    pixiv.text.loginMessage    = 'pixivにログインして<br>ユーザーにメッセージを送ろう!!!!';

    pixiv.text.registerImage = 'pixivに登録すると<br>さらに大きな画像で閲覧できる!!!!';

    pixiv.text.registerBookmark = 'pixivに登録して<br>気に入った作品をブックマークに追加しよう!!!!';
    pixiv.text.loginBookmark    = 'pixivにログインして<br>気に入った作品をブックマークに追加しよう!!!!';

    pixiv.text.registerRate = 'pixivに登録して<br>気に入った作品をいいね!しよう!!!!';
    pixiv.text.loginRate    = 'pixivにログインして<br>気に入った作品にいいね!を送ろう!!!!';

    pixiv.text.overaccess = 'もっと見るならpixivの会員になってさらに快適に!!!';
    pixiv.text.overaccessCaption = '大きな画像で閲覧できたり、お気に入り作品をブックマーク!!';

    pixiv.text.visit = 'まずは無料登録!<br>pixivに登録して、<br>お絵かきをもっと楽しもう!!!!';
    pixiv.text.searchModalPremium = 'pixivプレミアムなら人気の作品がすぐにみつかる!';
    pixiv.text.searchModalPremiumCaption = '1番人気の作品を一発検索!<br>1日、1週間、1ヶ月の期間で絞り込むこともできます。';

    pixiv.text.reuploadModalPremiumCaption = '塗り忘れを見つけても安心!<br>コメントやいいね!を消さずに再投稿できます!';

    pixiv.text.reuploadModalPremium = 'pixivプレミアムになると<br>作品を再投稿できます!';
    pixiv.text.captionModalPremiumCaption = '作品の説明などに利用するキャプションの、文字色や太さを変更して装飾することができます。';

    pixiv.text.bookmarkRange = 'pixivプレミアムで<br>作品をブックマーク数<br>ごとに<br>絞り込み表示できます';
</script>

<script>
pixiv.context.popular_search_trial_cookie_name = "popular_search_trial_cookie_12";
pixiv.context.popular_search_trial_is_target_user = false;
</script>



        <link rel="stylesheet" href="https://source.pixiv.net/www/css/beta/app/app.css?547c10ee1ce15c6866be4c609c65e46d"><link rel="stylesheet" href="https://source.pixiv.net/www/css/novel.css?940d7e622d68e0dfd717a3103d24036b"><link rel="stylesheet" href="https://source.pixiv.net/www/js/bundle/app.826b11dbfb9b59b8f927e42397790e96.css">    <link rel="stylesheet" type="text/css" href="https://source.pixiv.net/www/css/accounts-index.css?632ed6e393fd310954a21583f8858e86">

        <script>pixiv.context.backgroundSlideshow = true</script>
    <script src="https://source.pixiv.net/common/background-slideshow/bundle.js?d254c75c1687037fa95b"></script>

    </head>
<body class="not-logged-in">

<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-55FG"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-55FG');</script>
<!-- End Google Tag Manager -->





<div id="ui-tooltip-container" class="_hidden">
    <div class="wrapper">
        <div class="content"></div>
        <div class="nipple"></div>
    </div>
</div>

<div id="status-bar"></div>
<script>
pixiv.text.today = '本日';
pixiv.text.yesterday = '昨日';
pixiv.text.notifications = 'メッセージ・ポップボード';

pixiv.text.dailyRanking = 'デイリーランキング';
pixiv.text.weeklyRanking = 'ウィークリーランキング';
pixiv.text.monthlyRanking = 'マンスリーランキング';
pixiv.text.rookieRanking = 'ルーキーランキング';
pixiv.text.daily_r18Ranking = 'R-18 デイリーランキング';
pixiv.text.r18gRanking = 'R-18G ランキング';
pixiv.text.maleRanking = '男子に人気ランキング';
pixiv.text.femaleRanking = '女子に人気ランキング';
</script>
<div id="wrapper">
    <noscript>
        <div style="background-color:#F2F4F6;text-align:center;margin-bottom:10px;padding:5px;">
            <p style="color:#ff0000;">ウェブブラウザのJavaScript(ジャバスクリプト)の設定が無効になっています。<br>Javascriptが無効になっていると、サイト内の一部機能がご利用いただけません。</p>
        </div>
    </noscript>

        
    <div id="background-slideshow"></div><div class="signup-form"><div class="signup-form__logo-box"><div class="signup-form__logo"></div><div class="signup-form__catchphrase">創作活動をもっとたのしく</div></div><div><a href="https://accounts.pixiv.net/signup?return_to=http%3A%2F%2Fwww.pixiv.net%2Fsetting_profile.php&lang=ja&source=pc&view_type=page&ref=wwwtop_accounts_index" class="signup-form__submit ga-event" data-category="signup_pc_page" data-action="step1" data-label="mail">新規登録</a><a href="https://accounts.pixiv.net/login?return_to=http%3A%2F%2Fwww.pixiv.net%2Fsetting_profile.php&lang=ja&source=pc&view_type=page&ref=wwwtop_accounts_index" class="signup-form__submit--login">ログイン</a></div><div class="signup-form__sns-btn-area"><div>持っているアカウントではじめる</div><div class="sns-button-list"><a href="https://accounts.pixiv.net/gigya-auth?mode=signin&provider=googleplus&source=pc&view_type=page&return_to=http%3A%2F%2Fwww.pixiv.net%2Fsetting_profile.php&lang=ja&ref=wwwtop_accounts_index_google" class="btn-item btn-gplus ga-event" data-category="signup_pc_page" data-action="step1" data-label="googleplus"></a><a href="https://accounts.pixiv.net/gigya-auth?mode=signin&provider=facebook&source=pc&view_type=page&return_to=http%3A%2F%2Fwww.pixiv.net%2Fsetting_profile.php&lang=ja&ref=wwwtop_accounts_index_facebook" class="btn-item btn-facebook ga-event" data-category="signup_pc_page" data-action="step1" data-label="facebook"></a><a href="https://accounts.pixiv.net/gigya-auth?mode=signin&provider=twitter&source=pc&view_type=page&return_to=http%3A%2F%2Fwww.pixiv.net%2Fsetting_profile.php&lang=ja&ref=wwwtop_accounts_index_twitter" class="btn-item btn-twitter ga-event" data-category="signup_pc_page" data-action="step1" data-label="twitter"></a></div></div></div><div id="footer"><div class="_footer-container"><div class="_footer-content"><div class="_footer-content-item"><span class="_icon-text">pixivについて</span><i class="_pico-12 _icon-menu"></i><div class="content-popup about">![](http://upload-images.jianshu.io/upload_images/5309010-90b9750ae2c326bd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)<span class="footer-pixiv-motto-desc">pixiv(ピクシブ)は、イラストの投稿・閲覧が楽しめる「イラストコミュニケーションサービス」です。幅広いジャンルの作品が投稿され、ユーザー発の企画やメーカー公認のコンテストが開催されています。</span><div></div><dl class="links"><dt>サービス</dt><dd><ul><li><a href="https://comic.pixiv.net/" target="_blank">pixivコミック</a></li><li><a href="https://novel.pixiv.net/" target="_blank">pixivノベル</a></li><li><a href="https://factory.pixiv.net/" target="_blank">pixivFACTORY</a><a href="https://factory.pixiv.net/books" target="_blank">BOOKS</a></li><li><a href="https://booth.pm" target="_blank">BOOTH</a></li><li><a href="https://booth.pm/apollo/" target="_blank">APOLLO</a></li><li><a href="https://www.pixivision.net/ja/" target="_blank">pixivision</a></li><li><a href="https://sketch.pixiv.net/" target="_blank">pixiv Sketch</a></li><li><a href="https://sensei.pixiv.net/" target="_blank">sensei</a></li><li><a href="https://dic.pixiv.net/" target="_blank">ピクシブ百科事典</a></li><li><a href="http://dai2noare.com/" target="_blank">pixiv×テレビ東京 第2のアレ</a></li><li><a href="https://pawoo.net/" target="_blank">Pawoo</a><a href="https://music.pawoo.net/" target="_blank">Pawoo Music</a></li><li><a href="http://drawr.net/" target="_blank">drawr</a></li></ul></dd></dl><dl class="links"><dt>ご利用について</dt><dd><ul><li><a href="https://www.pixiv.net/terms.php">利用規約</a></li><li><a href="https://www.pixiv.net/guideline.php">ガイドライン</a></li><li><a href="https://www.pixiv.net/privacy.php">プライバシーポリシー</a></li><li><a href="https://www.pixiv.help/hc/">お問い合わせ</a></li><li><a href="https://www.pixiv.help/hc/" target="_blank">ヘルプ</a></li></ul></dd></dl><dl class="links"><dt>お知らせ</dt><dd><ul><li><a href="https://www.pixiv.net/info.php">お知らせ</a></li><li><a href="http://inside.pixiv.blog/" target="_blank">pixiv inside</a></li><li><a href="http://twitter.com/pixiv" target="_blank">Twitter</a></li><li><a href="http://www.facebook.com/pixiv" target="_blank">Facebook</a></li><li><a href="https://plus.google.com/108650212710562225539" target="_blank" rel="publisher">Google+</a></li><li><a href="http://instagram.com/pixiv" target="_blank">Instagram</a></li><li><a href="http://www.plurk.com/pixiv_tw" target="_blank">Plurk</a></li><li><a href="http://weibo.com/2230227495" target="_blank">weibo</a></li></ul></dd></dl><dl class="links"><dt>広告</dt><dd><ul><li><a href="http://www.pixiv.co.jp/ads">広告掲載</a></li><li><a href="http://www.pixiv.co.jp/ads">公式イラストコンテスト</a></li><li><a href="http://www.pixiv.co.jp/ads">広告資料ダウンロード</a></li></ul></dd></dl><dl class="links"><dt>会社情報</dt><dd><ul><li><a href="http://www.pixiv.co.jp/" target="_blank">運営会社</a></li><li><a href="http://recruit.pixiv.net/" target="_blank" class="js-click-trackable" data-click-category="recruit" data-click-action="From_Footer_ja" data-click-label="">採用情報</a></li></ul></dd></dl><div class="footer-pixiv-c">© pixiv</div></div></div><div class="_footer-content-item"><span class="_icon-text">日本語</span><i class="_pico-12 _icon-menu"></i><ul class="content-popup language"><li class="item ja current"><i class="_pico-12 _icon-check"></i><span class="_icon-text">日本語</span></li><li class="item en "><form name="seten" method="GET" action="/"><input type="hidden" name="lang" value="en"><input type="hidden" name="return_to" value="http://www.pixiv.net/setting_profile.php"><input class="button" type="submit" value="English"></form></li><li class="item ko "><form name="setko" method="GET" action="/"><input type="hidden" name="lang" value="ko"><input type="hidden" name="return_to" value="http://www.pixiv.net/setting_profile.php"><input class="button" type="submit" value="한국어"></form></li><li class="item zh "><form name="setzh" method="GET" action="/"><input type="hidden" name="lang" value="zh"><input type="hidden" name="return_to" value="http://www.pixiv.net/setting_profile.php"><input class="button" type="submit" value="简体中文"></form></li><li class="item zh_tw "><form name="setzh_tw" method="GET" action="/"><input type="hidden" name="lang" value="zh_tw"><input type="hidden" name="return_to" value="http://www.pixiv.net/setting_profile.php"><input class="button" type="submit" value="繁體中文"></form></li></ul></div></div></div></div><input type="hidden" id="init-config" class="json-data" value='{"pixivBackgroundSlideshow.illusts":{"portrait":[],"landscape":[{"illust_id":"36919122","illust_title":"Chiptune Hell","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2013\/07\/08\/01\/50\/25\/36919122_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2013\/07\/08\/01\/50\/25\/36919122_p0_master1200.jpg"},"user_name":"shirakaba","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2016\/08\/18\/03\/56\/50\/11367123_035c3d7f5ed4b3c3214d0040d1aa73d3_50.png"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=36919122","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=10163"},{"illust_id":"16848987","illust_title":"\u5d29\u58de\u306e\u4e16\u754c","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2011\/02\/21\/14\/30\/27\/16848987_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2011\/02\/21\/14\/30\/27\/16848987_p0_master1200.jpg"},"user_name":"\u7121\u8a00","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2008\/03\/19\/18\/48\/41\/87063_5b0f9ee7f1f3ca45b36c0be8f8252ded_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=16848987","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=104247"},{"illust_id":"15126670","illust_title":"brunch table","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2010\/12\/12\/00\/38\/32\/15126670_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2010\/12\/12\/00\/38\/32\/15126670_p0_master1200.jpg"},"user_name":"comet","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2010\/09\/14\/23\/43\/37\/2198389_b5cacb037104a8d4220783db2fa7ca9b_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=15126670","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=113726"},{"illust_id":"43409888","illust_title":"\u3086\u3089\u3086\u3089","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2014\/05\/10\/05\/54\/44\/43409888_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2014\/05\/10\/05\/54\/44\/43409888_p0_master1200.jpg"},"user_name":"\u6708\u5ca1\u6708\u7a42","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2014\/10\/21\/23\/40\/05\/8537098_38e0f21511a621d5549e768d01d4d4dd_50.png"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=43409888","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=122500"},{"illust_id":"37203249","illust_title":"Vanity","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2013\/07\/21\/01\/10\/21\/37203249_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2013\/07\/21\/01\/10\/21\/37203249_p0_master1200.jpg"},"user_name":"\u5343\u5e74\u51db","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2016\/10\/15\/23\/07\/58\/11624649_ec6b0d60444e422ac596612a160bdafc_50.png"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=37203249","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=143452"},{"illust_id":"22600763","illust_title":"\uff06 Gothika","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2011\/10\/24\/23\/02\/44\/22600763_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2011\/10\/24\/23\/02\/44\/22600763_p0_master1200.jpg"},"user_name":"chibi","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2011\/09\/28\/23\/42\/32\/3667550_112278a588cf43b2625ff22dce8c5ac6_50.gif"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=22600763","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=14914"},{"illust_id":"31251762","illust_title":"\u3042\u306e\u65e5\u898b\u305f\u7a7a\u3092\u50d5\u306f\u5fd8\u308c\u306a\u3044","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2012\/11\/03\/15\/05\/14\/31251762_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2012\/11\/03\/15\/05\/14\/31251762_p0_master1200.jpg"},"user_name":"\u3068\u308d\u3063\u3061","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2012\/09\/23\/09\/37\/16\/5188950_847637cb21364a05efe0823eae6f4436_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=31251762","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=1661432"},{"illust_id":"37016225","illust_title":"\u590f\u98a8\u524d\u7dda","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2013\/07\/13\/00\/10\/28\/37016225_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2013\/07\/13\/00\/10\/28\/37016225_p0_master1200.jpg"},"user_name":"\u9577\u4e43","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2016\/07\/01\/00\/20\/00\/11135863_048d96d55816dc89fbd236d526330fd8_50.png"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=37016225","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=1975032"},{"illust_id":"47621790","illust_title":"\u671d\u306e\u6d77\u6e2f","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2014\/12\/18\/23\/09\/24\/47621790_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2014\/12\/18\/23\/09\/24\/47621790_p0_master1200.jpg"},"user_name":"ArseniXC","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2012\/02\/06\/20\/44\/48\/4172636_cf06fd6cfd7be58ee2990a9f97db6cb8_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=47621790","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=202175"},{"illust_id":"57080648","illust_title":"\u5922\u98a8\u306e\u30e9\u30d7\u30bd\u30c7\u30a3\u30fc","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2016\/05\/27\/00\/12\/07\/57080648_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2016\/05\/27\/00\/12\/07\/57080648_p0_master1200.jpg"},"user_name":"\u9632\u4eba","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2014\/12\/02\/18\/57\/54\/8681178_97ea866b8a4d52acac0d7a820783d00e_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=57080648","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=211515"},{"illust_id":"29601755","illust_title":"\u304a\u5f15\u3063\u8d8a\u3057","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2012\/08\/24\/00\/00\/27\/29601755_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2012\/08\/24\/00\/00\/27\/29601755_p0_master1200.jpg"},"user_name":"\u84bc\u5ddd\u308f\u304b","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2017\/01\/30\/22\/18\/24\/12078436_97aa21b0ffb8d7e7f61b2c53f1e1e156_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=29601755","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=25587"},{"illust_id":"24958388","illust_title":"\u63a2\u5075\u306e\u30d6\u30e9\u30f3\u30c1","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2012\/02\/10\/00\/12\/59\/24958388_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2012\/02\/10\/00\/12\/59\/24958388_p0_master1200.jpg"},"user_name":"\u96e8","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2014\/05\/29\/18\/32\/16\/7926046_bcd4d216d7d0c8fbfeb1062bf70617f5_50.png"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=24958388","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=27087"},{"illust_id":"40191798","illust_title":"\u4e0b\u304c\u3063\u3066\u3066","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2013\/12\/09\/20\/52\/42\/40191798_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2013\/12\/09\/20\/52\/42\/40191798_p0_master1200.jpg"},"user_name":"psk","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2013\/03\/21\/15\/52\/43\/5990070_c93b9aa0b1fd1da49dcf7bc9d4edbdca_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=40191798","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=3351039"},{"illust_id":"11333874","illust_title":"\u96ea\u5c71","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2010\/06\/17\/15\/52\/09\/11333874_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2010\/06\/17\/15\/52\/09\/11333874_p0_master1200.jpg"},"user_name":"Gu","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2014\/11\/19\/20\/23\/24\/8638105_e851c496724f437d94262c58d0c13e1b_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=11333874","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=366411"},{"illust_id":"8913281","illust_title":"Vision","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2010\/02\/21\/00\/03\/29\/8913281_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2010\/02\/21\/00\/03\/29\/8913281_p0_master1200.jpg"},"user_name":"\u3075\u3049\uff5e\u3069","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2016\/02\/24\/16\/02\/08\/10580950_076b832608f8d62bc20808d84e77d7e8_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=8913281","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=370712"},{"illust_id":"35231457","illust_title":"\u30e1\u30ab\u30cb\u30c3\u30af\u30fb\u30ed\u30f3\u30c9","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2013\/04\/25\/18\/54\/59\/35231457_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2013\/04\/25\/18\/54\/59\/35231457_p0_master1200.jpg"},"user_name":"\u304a\u306b\u306d\u3053","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2017\/04\/16\/22\/36\/57\/12427531_354afa0665b7e041a2a0005772f44900_50.png"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=35231457","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=3952"},{"illust_id":"38631998","illust_title":"\u6d41\u661f\u96e8","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2013\/09\/20\/17\/53\/12\/38631998_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2013\/09\/20\/17\/53\/12\/38631998_p0_master1200.jpg"},"user_name":"\u3052\u307f","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2014\/03\/12\/18\/32\/50\/7589860_5117ba8cd0df0963633ae6a6b5616b5c_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=38631998","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=396769"},{"illust_id":"35019721","illust_title":"epitaph","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2013\/04\/15\/00\/43\/25\/35019721_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2013\/04\/15\/00\/43\/25\/35019721_p0_master1200.jpg"},"user_name":"\u3042\u3055\u304e\u308a","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2013\/01\/25\/18\/08\/14\/5731959_f1fed145f5fd399fe3ed04a3aa9a134d_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=35019721","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=4357166"},{"illust_id":"49281286","illust_title":"\u68ee\u306e\u90fd","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2015\/03\/15\/01\/01\/48\/49281286_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2015\/03\/15\/01\/01\/48\/49281286_p0_master1200.jpg"},"user_name":"\u30b8\u30e3\u30f3\u30fb\u30dd\u30dd","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2014\/12\/06\/00\/12\/01\/8691367_1d45847544a736f7962b050d6394cf43_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=49281286","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=455626"},{"illust_id":"26339586","illust_title":"\u30c0\u30a4\u30d6","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2012\/04\/04\/21\/24\/46\/26339586_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2012\/04\/04\/21\/24\/46\/26339586_p0_master1200.jpg"},"user_name":"\u98f4\u6751","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2009\/11\/16\/22\/14\/55\/1239185_31374e5c882f5a649f877f516e630480_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=26339586","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=47488"},{"illust_id":"37602900","illust_title":"StarTLiNe","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2013\/08\/06\/20\/38\/58\/37602900_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2013\/08\/06\/20\/38\/58\/37602900_p0_master1200.jpg"},"user_name":"\u3076\u30fc\u305f","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2014\/10\/25\/01\/29\/21\/8546824_f685017cf0c3afe25d47ccbce9f488b7_50.png"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=37602900","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=652196"},{"illust_id":"22208183","illust_title":"\u8da3\u3044\u305f\u307e\u307e\u751f\u304d\u306a\u3055\u3044","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2011\/10\/06\/16\/55\/08\/22208183_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2011\/10\/06\/16\/55\/08\/22208183_p0_master1200.jpg"},"user_name":"\u70cf\u9d28","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2013\/05\/27\/15\/28\/17\/6291423_d6b16f0dcfffe7b5140a394503c130a8_50.png"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=22208183","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=750680"},{"illust_id":"57196809","illust_title":"\u5c45\u9152\u5c4b\u8857","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2016\/06\/03\/01\/55\/24\/57196809_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2016\/06\/03\/01\/55\/24\/57196809_p0_master1200.jpg"},"user_name":"\u30dd\u30b3","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2016\/02\/15\/01\/03\/56\/10535307_95c460fa30c71e972dd7445ab9248d49_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=57196809","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=76266"},{"illust_id":"34512986","illust_title":"\u3055\u3056\u306a\u307f","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2013\/03\/25\/12\/44\/18\/34512986_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2013\/03\/25\/12\/44\/18\/34512986_p0_master1200.jpg"},"user_name":"loundraw","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2015\/10\/26\/13\/27\/37\/10040113_f5351110064281797872cabe956a8404_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=34512986","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=772547"},{"illust_id":"16983806","illust_title":"\u5de3\u7acb\u3061","url":{"medium":"https:\/\/i.pximg.net\/c\/600x600\/img-master\/img\/2011\/02\/27\/00\/12\/23\/16983806_p0_master1200.jpg","1200x1200":"https:\/\/i.pximg.net\/img-master\/img\/2011\/02\/27\/00\/12\/23\/16983806_p0_master1200.jpg"},"user_name":"\u30b3\u30fc\u30e9","profile_img":{"main_s":"https:\/\/i.pximg.net\/user-profile\/img\/2010\/02\/21\/13\/25\/25\/1508237_25b902302d5f03fd6688b5afd466d4b1_50.jpg"},"www_member_illust_medium_url":"https:\/\/www.pixiv.net\/member_illust.php?mode=medium\u0026illust_id=16983806","www_user_url":"https:\/\/www.pixiv.net\/member.php?id=810305"}]}}'>

    </div>
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-NH5MTD"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-NH5MTD');</script>
<!-- End Google Tag Manager -->
<script id="capybara-status-check" data-t-code="0ec06063442619c76e42d6ebed9fa6dd" data-m-code="5276059c3a4531f3da239d1ea8771242"></script>
</body>
</html>
  1. 构造请求头
header.jpg
def _init_(self):
    self.base_url = 'https://accounts.pixiv.net/login?lang=zh&source=pc&view_type=page&ref=wwwtop_accounts_index'
    self.login_url = 'https://accounts.pixiv.net/api/login?lang=zh'
    self.target_url = 'https://www.pixiv.net/search.php?s_mode=s_tag&word=%E5%AE%AB%E5%9B%AD%E8%96%B0'
    self.main_url = 'http://www.pixiv.net'
    self.headers = {
        'Host': 'accounts.pixiv.net',
        'Origin': 'https://accounts.pixiv.net',
        'Referer': 'https: // accounts.pixiv.net / login'
                   '?lang = zh & source = pc & view_type = page & ref = wwwtop_accounts_index',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
                      ' AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36',
        'X-Requested-With': 'XMLHttpRequest'
    }
  1. 构造请求体
from.jpg
self.pixiv_id = 'userid',
    self.password = '*****',
    self.post_key = []
    self.return_to = 'https://www.pixiv.net/'
    #存放图片路径
    self.load_path = 'F:\work\picture'
    self.ip_list = []
  1. 捕捉需要获取的字段
Post_Key.jpg
def login(self):
    post_key_xml = self.get(self.base_url,headers = self.headers).text
    post_key_soup = BeautifulSoup(post_key_xml,'lxml')
    self.post_key = post_key_soup.find(name='post_key')['value']
    #构造请求体
    data = {
        'pixiv_id': self.pixiv_id,
        'password': self.password,
        'post_key': self.post_key,
        'return_to': self.return_to
    }
   #模拟登录post
    self.post(self.base_url,data=data,headers=self.headers)
    
  1. 测试登录
import requests
from bs4 import BeautifulSoup

se = requests.Session()



class Pixiv(object):

    def __init__(self):
        self.base_url = 'https://accounts.pixiv.net/login?lang=zh&source=pc&view_type=page&ref=wwwtop_accounts_index'
        self.login_url = 'https://accounts.pixiv.net/api/login?lang=zh'
        self.target_url = 'https://www.pixiv.net/search.php?s_mode=s_tag&word=%E5%AE%AB%E5%9B%AD%E8%96%B0'
        self.main_url = 'http://www.pixiv.net'
        self.headers = {
            # 'Host': 'accounts.pixiv.net',
            # 'Origin': 'https://accounts.pixiv.net',
            'Referer': 'https: // accounts.pixiv.net / login'
                       '?lang = zh & source = pc & view_type = page & ref = wwwtop_accounts_index',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
                          ' AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36',
            # 'X-Requested-With': 'XMLHttpRequest'
        }
        self.pixiv_id = 'userid',
        self.password = 'password',
        self.post_key = []
        self.return_to = 'https://www.pixiv.net/'
        # 存放图片路径
        self.load_path = 'F:\work\picture'
        self.ip_list = []

    def login(self):
        post_key_xml = se.get(self.base_url, headers=self.headers).text
        post_key_soup = BeautifulSoup(post_key_xml, 'lxml')
        self.post_key = post_key_soup.find('input')['value']
        # 构造请求体
        data = {
            'pixiv_id': self.pixiv_id,
            'password': self.password,
            'post_key': self.post_key,
            'return_to': self.return_to
        }
        se.post(self.login_url, data=data, headers=self.headers)

if __name__ == '__main__':

    pixiv = Pixiv()
    pixiv.login()

console output:事故现场,遭遇反爬

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:/pythonProject/PixivSpider/PixivChange.py", line 99, in <module>
    pixiv.login()
  File "F:/pythonProject/PixivSpider/PixivChange.py", line 84, in login
    post_key_xml = se.get(self.base_url, headers=self.headers).text
  File "C:\Users\26645\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\sessions.py", line 515, in get
    return self.request('GET', url, **kwargs)
  File "C:\Users\26645\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\sessions.py", line 502, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\26645\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\sessions.py", line 612, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\26645\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: EOF occurred in violation of protocol (_ssl.c:749)

看了一下这位朋友的讲解,爬虫的作用是将找到的大量数据爬取到本地,
通常网站管理员会用限制ip频率的方式进行反爬虫,找了一个ip代理池维护访问ip

Ip_Proxy.jpg
  1. 获取ip代理池 (ps:若要使用正则:r'<td data-title="IP">(.*?)</tr>')
    def get_proxy(self):

        html = requests.get("http://www.kuaidaili.com/free/")
        # bsObj=BeautifulSoup(html,"html.parser",from_encoding="iso-8859-1")
        bsObj = BeautifulSoup(html.text, 'html.parser')
        ip_info_ip = bsObj.findAll("td", {"data-title": "IP"})
        ip_info_port = bsObj.findAll("td", {"data-title": "PORT"})
        # print(ip_info_ip)
        i = 0
        for ip_info in ip_info_ip:
            ip_info = str(ip_info_ip[i].text) + ':' + str(ip_info_port[i].text)
            i = i + 1
            self.ip_list.append(ip_info)
            print(ip_info)

console output: 拿到IP代理池

ip_list.jpg

接着我们需要设置爬取网页错误时,设置延时及时更换ip代理
6)设置http代理延时

构建思路:

  • 检查爬取网站是否有空闲的动态端口(ps:p站看起来不太可能有,加个判断以防万一),如果有发出一个get请求获取页面
  • 随机从ip列表中用5个ip进行尝试
  • 给定一个5秒的延时。将之前构建的代理池ip随机选择一条,如果失败则尝试ip总数-1,否则开始使用ip代理
    def get_html(self, url, timeout,proxy=None, num_entries=5):
        if proxy is None:
            try:
                return se.get(url,headers=self.headers,num_entries=5,timeout=timeout)
            except:
                if num_entries > 0:
                    print('获取网页出错,5秒后将会重新倒数第',num_entries,'次')
                    time.sleep(5)
                    return self.get_html(url,timeout,num_entries=num_entries-1)
                else:
                    print('开始使用代理')
                    time.sleep(5)
                    ip = ''.join(str(random.choice(self.ip_list))).strip()
                    now_proxy = {'http':ip}
                    return self.get_html(url,timeout,proxy=now_proxy)
        else:
            try:
                return se.get(url,headers =self.headers,proxy=proxy,timeout=timeout)
            except:
                if num_entries>0:
                    print('正在更换代理,5秒后重新获取第',num_entries,'次')
                    time.sleep(5)
                    ip = ''.join(str(random.choice(self.ip_list))).strip()
                    now_proxy = {'http': ip}
                    return self.get_html(url, timeout, proxy=now_proxy)
                else:
                    print('使用代理失败')
                    return self.get_hmtl(url.timeout)
    def work(self):
        self.login()
        for page_num in range(1,10):
            path = str(page_num)
            now_html = self.get_html(self.target_url+str(page_num),3)
            print('第{page}被保存完毕',format(page=page_num))
            time.sleep(2)

console ouput

python.jpg

依然反爬。。emmm查看全部日志发现,json字符串中的posetkey未拿到,于是回过来单独拿下json试试

json.jpg
  1. 获取json测试SSLERROR
    def get_json(self):
        html = se.get(self.base_url,params=self.params)
        start = html.text.find(r'<input type="hidden" id="init-config" class="json-data" value=')
        end = html.text.find(r'>')
        self.json_data = html.text[start:end]
        print(self.json_data)
    def work(self):
        self.login()
        for page_num in range(1,10):
            path = str(page_num)
            now_html = self.get_html(self.target_url+str(page_num),3)
            print('第{page}被保存完毕',format(page=page_num))
            time.sleep(2)
if __name__ == '__main__':

    pixiv = Pixiv()
    pixiv.get_json()

console output

SSLError.jpg

解决方法 :原来是因为在访问服务器的同时,需要配置SSL证书进行伪装,对比了下自己的情况,install pyOpenssl就好了

7)利用BeatifulSoup模拟登录

import random

import requests
from bs4 import BeautifulSoup
from urllib.request import urlopen
import re
import os
import time
from selenium import webdriver
import ssl
se = requests.Session()
chromedriver ="F:\dirver\chromedriver.exe"
os.environ["webdriver.chrome.driver"] =chromedriver

class Pixiv(object):

    def __init__(self):
        self.base_url = 'https://accounts.pixiv.net/login?lang=zh&source=pc&view_type=page&ref=wwwtop_accounts_index'
        self.login_url = 'https://accounts.pixiv.net/api/login?lang=zh'
        self.target_url = 'https://www.pixiv.net/search.php?s_mode=s_tag&word=%E5%AE%AB%E5%9B%AD%E8%96%B0'
        self.main_url = 'http://www.pixiv.net'
        self.params = {
            'lang': 'zh',
            'source': 'pc',
            'view_type': 'page',
            'ref': 'wwwtop_accounts_index'
        }
        self.headers = {
            # 'Host': 'accounts.pixiv.net',
            # 'Origin': 'https://accounts.pixiv.net',
            'Referer': 'https: // accounts.pixiv.net / login'
                       '?lang = zh & source = pc & view_type = page & ref = wwwtop_accounts_index',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
                          ' AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36',
            # 'X-Requested-With': 'XMLHttpRequest'
        }
        self.pixiv_id = 'userid',
        self.password = 'pwd',
        self.post_key = []
        self.return_to = 'https://www.pixiv.net/'
        # 存放图片路径
        self.load_path = 'F:\work\picture'
        self.ip_list = []
        self.json_data = ""

    def login(self):
        # se.headers = self.headers
        # r = se.get(self.login_url,params=self.params)
        # pattern = re.compile(r'name="post_key"value="(.*?)">')
        # result = pattern.findall(r.text)
        # self.post_key = result[0]
        # 构造请求体
        post_key_html = se.get(self.base_url,headers= self.headers).text
        post_key_soup = BeautifulSoup(post_key_html,'lxml')
        self.post_key = post_key_soup.find('input')['value']

        data = {
            'pixiv_id': self.pixiv_id,
            'password': self.password,
            'post_key': self.post_key,
            'return_to': self.return_to
        }
        q = se.post(self.login_url, data=data, headers=self.headers)
        result = se.get(self.main_url)
        print(q.text)
        print(result.text)




    def get_proxy(self):

        html = requests.get("http://www.kuaidaili.com/free/")
        # bsObj=BeautifulSoup(html,"html.parser",from_encoding="iso-8859-1")
        bsObj = BeautifulSoup(html.text, 'html.parser')
        ip_info_ip = bsObj.findAll("td", {"data-title": "IP"})
        ip_info_port = bsObj.findAll("td", {"data-title": "PORT"})
        # print(ip_info_ip)
        i = 0
        for ip_info in ip_info_ip:
            ip_info = str(ip_info_ip[i].text) + ':' + str(ip_info_port[i].text)
            i = i + 1
            self.ip_list.append(ip_info)
            print(ip_info)

    def get_html(self, url, timeout,proxy=None, num_entries=5):
        self.get_proxy()
        if proxy is None:
            try:
                return se.get(url,headers=self.headers,num_entries=5,timeout=timeout)
            except:
                if num_entries > 0:
                    print('获取网页出错,5秒后将会重新倒数第',num_entries,'次')
                    time.sleep(5)
                    return self.get_html(url,timeout,num_entries=num_entries-1)
                else:
                    print('开始使用代理')
                    time.sleep(5)
                    ip = ''.join(str(random.choice(self.ip_list))).strip()
                    now_proxy = {'http':ip}
                    return self.get_html(url,timeout,proxy=now_proxy)
        else:
            try:
                return se.get(url,headers =self.headers,proxy=proxy,timeout=timeout)
            except:
                if num_entries>0:
                    print('正在更换代理,5秒后重新获取第',num_entries,'次')
                    time.sleep(5)
                    ip = ''.join(str(random.choice(self.ip_list))).strip()
                    now_proxy = {'http': ip}
                    return self.get_html(url, timeout, proxy=now_proxy,num_entries=num_entries-1)
                else:
                    print('使用代理失败')
                    return self.get_hmtl(url.timeout)

    def work(self):
        self.login()
        for page_num in range(1,10):
            path = str(page_num)
            now_html = self.get_html(self.target_url+str(page_num),3)
            print('第{page}被保存完毕',format(page=page_num))
            time.sleep(2)
if __name__ == '__main__':

    pixiv = Pixiv()
    pixiv.login()

console output*:拿到验证信息,验证返回校验的hash字符串一致

token.jpg
entype.jpg

2.创建爬取文件夹

    def mkdir(self,path):
        path = path.strip()
        is_exist =os.path.exists(os.path.join(self.load_path,path))
        if not is_exist:
            print('创建一个名字为 '+path+' 的文件夹')
            os.makedirs(os.path.join(self.load_path,path))
            os.chdir(os.path.join(self.load_path,path))
            return True
        else:
            print('名字为 '+path+' 的文件夹已经存在')
            os.chdir(os.path.join(self.load_path,path))
            return False
mkdir.jpg

3 从爬取页面抓取图片
以第一张素描照片为例:图片信息URL =main_url+href包含标签值
素描图躺着的地方~:div class="work-display"下

target_url.jpg
jump_to_img.jpg

1)获取保存图片信息的所有li标签列表

    def get_img(self,html,page_num):
        li_soup =BeautifulSoup(html,'lxml')
        li_list = li_soup.find_all('li',attrs={'class','image-item'})
        for li in li_list:
            href = li.find('a')['href']
            print(href)
            jump_to_url =self.main_url +href
            jump_to_html = self.get_html(jump_to_url,3).text
            img_soup =BeautifulSoup(jump_to_html,'lxml')
            img_info = img_soup.find('div',attrs={'class','work_display'})\
            .find('div',attrs={'class','_layout-thumbnail'})
            if img_info is None:
                continue
            self.download_img(img_info,jump_to_url,page_num)
  1. 获取图片信息同时,保存图片信息到指定文件中
    def download_img(self,img_info,href,page_num):
        title = img_info.find('img')['alt']
        src =img_info.find('img')['src']
        src_headers = self.headers
        src_headers['Referer'] = href
        try:
            html =requests.get(src,headers=src_headers)
            img=html.content
        except:
            print('爬取图片失败')
            return False

        title = title.replace('?', '_').replace('/', '_').replace('\\', '_').replace('*', '_').replace('|', '_').\
                replace('>', '_').replace('<', '_').replace(':', '_').replace('"', '_').strip()
        # 去掉那些不能在文件名里面的.记得加上strip()去掉换行

        if os.path.exists(os.path.join(self.load_path,str(page_num)),title+'.jpg'):
            for i in range(1,100):
                if not os.path.exists(os.path.join(self.load_path,str(page_num),title+str(i))+'.jpg'):
                    title = title+str(i)
                    break;
        print('正在保存名字为: '+title+' 的图片')
        with open(title+'.jpg','b') as f:
            f.write(img)
        print('保存该图片完毕')

console output

onSuccess.jpg
picture.jpg

然而因为中途撤掉了代理,所以爬了五张就挂了,qwq我的大四月啊~

NoProxy.jpg

代码清单

import random

import requests
from bs4 import BeautifulSoup
from urllib.request import urlopen
import re
import os
import time
from selenium import webdriver
import ssl
se = requests.Session()
chromedriver ="F:\dirver\chromedriver.exe"
os.environ["webdriver.chrome.driver"] =chromedriver

class Pixiv(object):

    def __init__(self):
        self.base_url = 'https://accounts.pixiv.net/login?lang=zh&source=pc&view_type=page&ref=wwwtop_accounts_index'
        self.login_url = 'https://accounts.pixiv.net/api/login?lang=zh'
        self.target_url = 'https://www.pixiv.net/search.php?word=%E5%AE%AB%E5%9B%AD%E8%96%B0&order=date_d'
        self.main_url = 'http://www.pixiv.net'
        self.params = {
            'lang': 'zh',
            'source': 'pc',
            'view_type': 'page',
            'ref': 'wwwtop_accounts_index'
        }
        self.headers = {
            # 'Host': 'accounts.pixiv.net',
            # 'Origin': 'https://accounts.pixiv.net',
            'Referer': 'https: // accounts.pixiv.net / login'
                       '?lang = zh & source = pc & view_type = page & ref = wwwtop_accounts_index',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
                          ' AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36',
            # 'X-Requested-With': 'XMLHttpRequest'
        }
        self.pixiv_id = 'userid',
        self.password = 'pwd',
        self.post_key = []
        self.return_to = 'https://www.pixiv.net/'
        # 存放图片路径
        self.load_path = 'F:\work\picture'
        self.ip_list = []
        self.json_data = ""

    def login(self):
        # se.headers = self.headers
        # r = se.get(self.login_url,params=self.params)
        # pattern = re.compile(r'name="post_key"value="(.*?)">')
        # result = pattern.findall(r.text)
        # self.post_key = result[0]
        # 构造请求体
        post_key_html = se.get(self.base_url,headers= self.headers).text
        post_key_soup = BeautifulSoup(post_key_html,'lxml')
        self.post_key = post_key_soup.find('input')['value']

        data = {
            'pixiv_id': self.pixiv_id,
            'password': self.password,
            'post_key': self.post_key,
            'return_to': self.return_to
        }
        q = se.post(self.login_url, data=data, headers=self.headers)
        result = se.get(self.main_url)
        # print(q.text)
        # print(result.text)




    def get_proxy(self):

        html = requests.get("http://www.kuaidaili.com/free/")
        # bsObj=BeautifulSoup(html,"html.parser",from_encoding="iso-8859-1")
        bsObj = BeautifulSoup(html.text, 'html.parser')
        ip_info_ip = bsObj.findAll("td", {"data-title": "IP"})
        ip_info_port = bsObj.findAll("td", {"data-title": "PORT"})
        # print(ip_info_ip)
        i = 0
        for ip_info in ip_info_ip:
            ip = str(ip_info_ip[i].text) + ':' + str(ip_info_port[i].text)
            i = i + 1
            ip_replace = re.sub('\n','',ip)
            self.ip_list.append(ip_replace.strip())
            # print(self.ip_list)

        # html = requests.get("http://www.kuaidaili.com/free/")
        # # bsObj=BeautifulSoup(html,"html.parser",from_encoding="iso-8859-1")
        # bsObj = BeautifulSoup(html.text,'lxml')
        # ListTable = bsObj.find_all("table",class_="list")
        # res_tr = r'<tr>(.*?)</tr>'
        # m_tr = re.findall(res_tr, html.text, re.S|re.M)
        # res_td_ip = r'<td data-title="IP">(.*?)</td>'
        # res_td_port = r'<td data-title="PORT">(.*?)</td>'
        #
        # for ip_list_enable in m_tr:
        #     port = re.findall(res_td_port,ip_list_enable,re.S|re.M)
        #     # ip_list_enable =ip_address+':'+port
        #     ip_address = re.findall(res_td_ip, ip_list_enable, re.S | re.M)
        #     # post_temp = re.sub('\n','',ip_list_enable)
        #     # self.ip_list.append(post_temp.strip())
        #     print(ip_address)

        # i=0
        # for ip in self.ip_list_temp:
        #     ip = ip_list_temp[i].contents
        #     i = i + 1
        #     self.ip_list.append(ip)
        #     print(ip)
        # ip_list_temp = re.findall(r'<tr data-title="IP">(.*?)</tr>',bsObj.text)
        # for ip in ip_list_temp:
        #     i = re.sub('\n','',ip)
        #     self.ip_list.append(i.strip())
        #     print(i.strip())

    def get_html(self, url, timeout,proxy=None, num_entries=5):
        if proxy is None:
            try:
                return se.get(url,headers=self.headers,num_entries=5,timeout=timeout)
            except:
                if num_entries > 0:
                    print('获取网页出错,5秒后将会重新倒数第',num_entries,'次')
                    time.sleep(5)
                    return self.get_html(url,timeout,num_entries=num_entries-1)
                else:
                    print('开始使用代理')
                    time.sleep(5)
                    ip = ''.join(str(random.choice(self.ip_list))).strip()
                    print(random.choice(self.ip_list))
                    now_proxy = {'http':ip}
                    return self.get_html(url,timeout,proxy=now_proxy)
        else:
            try:
                return se.get(url,headers =self.headers,proxy=proxy,timeout=timeout)
            except:
                if num_entries > 0:
                    print('正在更换代理,5秒后重新获取第',num_entries,'次')
                    time.sleep(5)
                    ip = ''.join(str(random.choice(self.ip_list))).strip()
                    now_proxy = {'http': ip}
                    return self.get_html(url, timeout, proxy=now_proxy,num_entries=num_entries-1)
                else:
                    print('使用代理失败')
                    return self.get_hmtl(url.timeout)

    def mkdir(self,path):
        path = path.strip()
        is_exist =os.path.exists(os.path.join(self.load_path,path))
        if not is_exist:
            print('创建一个名字为 '+path+' 的文件夹')
            os.makedirs(os.path.join(self.load_path,path))
            os.chdir(os.path.join(self.load_path,path))
            return True
        else:
            print('名字为 '+path+' 的文件夹已经存在')
            os.chdir(os.path.join(self.load_path,path))
            return False

    def get_img(self,html,page_num):
        li_soup =BeautifulSoup(html,'html5lib')
        li_list = li_soup.find_all('li',attrs={'class','image-item'})
        for li in li_list:
            href = li.find('a')['href']
            # print(href)
            jump_to_url =self.main_url +href
            jump_to_html = se.get(jump_to_url).text
            img_soup =BeautifulSoup(jump_to_html,'html5lib')
            img_info =img_soup.find('div',{'class':'works_display'})\
            .find('div',attrs={'class':'_layout-thumbnail'})
            # print(img_info)
            if img_info is None:
                print("图片未找到")
                continue
            # else:
            # print(jump_to_url)
            # print(img_info)
            self.download_img(img_info,jump_to_url,page_num)

    def download_img(self,img_info,href,page_num):
        title = img_info.find('img')['alt']
        src = img_info.find('img')['src']
        src_headers = self.headers
        src_headers['Referer'] = href
        try:
            html = requests.get(src,headers=src_headers)
            img = html.content
        except:
            print('爬取图片失败')
            return False

        title = title.replace('?', '_').replace('/', '_').replace('\\', '_').replace('*', '_').replace('|', '_').\
                replace('>', '_').replace('<', '_').replace(':', '_').replace('"', '_').strip()
        # 去掉那些不能在文件名里面的.记得加上strip()去掉换行

        if os.path.exists(os.path.join(self.load_path,str(page_num),title+'.jpg')):
            for i in range(1,100):
                if not os.path.exists(os.path.join(self.load_path,str(page_num),title+str(i)+'.jpg')):
                    title = title+str(i)
                    break;
        print('正在保存名字为: '+title+' 的图片')
        with open(title+'.jpg','ab') as f:
            f.write(img)
        print('保存该图片完毕')

    def work(self):
        self.login()
        for page_num in range(1,10):
            path = str(page_num)
            self.mkdir(path)
            # now_html = self.get_html(self.target_url+str(page_num),3)
            now_html = self.target_url+"&p="+str(page_num)
            print(now_html)
            self.get_img(se.get(now_html).text,9)
            print('第{page}被保存完毕',format(page_num))
            time.sleep(2)
if __name__ == '__main__':

    pixiv = Pixiv()
    pixiv.work()
    # pixiv.get_proxy()
    # pixiv.get_html(pixiv.ip_list,5)
    # pixiv.get_html(pixiv.target_url,5)
    # pixiv.get_proxy()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,490评论 18 139
  • 1 前言 作为一名合格的数据分析师,其完整的技术知识体系必须贯穿数据获取、数据存储、数据提取、数据分析、数据挖掘、...
    whenif阅读 18,039评论 45 523
  • 爸妈, 朋友 ,安顿自己要早睡早起。一晃神,又是一个凌晨。还是小孩子啊,心里头突然间装了点事情,就失眠了...
    珂大芽阅读 346评论 0 2
  • 说明:这是在网上找了一个商城的案例(淘淘商城),相关资料可以在网上找到。 一、技术选型 1、数据库:```mysq...
    yjaal阅读 406评论 0 4
  • 01 有朋友最近吐槽,说是生活太累了,长大为人,要面对的东西太多太多,有种让人措手不及的紧迫感。 问及缘由,才知道...
    大头针思维阅读 4,412评论 1 5