爬虫類のエクササイズ - 登山姉妹マップ

urllib.requestインポート
インポートザurllib.parse
再インポート、OS、時間
「」「
スプライスURLは、応答、応答のコンテンツ解析、データ・ストレージのコンテンツ取得要求送信
「」」
DEF Get_Request(NEW_URLを):
ヘッダが= {
' -エージェントユーザーズ: 'のMozilla / 5.0(Windows NTの10.0; Win64の、x64-)のAppleWebKit / 537.36(KHTML、ヤモリ等)クローム/ 76.0.3809.100サファリ/ 537.36'
}
リクエスト= urllib.request.Request(URL = NEW_URL、ヘッダー=ヘッダ)
要求リターン

DEF GET_CONTENT(要求):
レスポンス= urllib.request.urlopen(要求)
#印刷(response.read()( 'GBK')デコードします。)
リターンresponse.read()( 'GBK')デコードします。

DEFのparse_content(コンテンツ):
'' '
"=のdivクラスを<親指 ">
HREF = "/記事/ 122125840"ターゲット= "_空白"> <
=は「脂肪あごである<IMG SRC = "// pic.qiushibaike.com/system/pictures/12212/122125840/medium/EAB3PVYM1XFGJF1A.jpg" Altキー彼らは私の肉です">
</a>の
</ div>
<divのクラス=" PIC「>
<aのtarget="_blank"のhref="https://www.meizitu.com/a/5521.html">
<IMG SRC =「http://pic.topmeizi.com/wp-content/uploads/2017a/04/08/limg.jpg」ALT =「<B> 図福祉の週末、私の叔父は、感のある最後の務め</ B> ">
</a>の
</ div>
<H3クラス=" TIT「>
<a href="https://www.meizitu.com/a/5521.html" target="_blank">
<B>図福祉週末、私の叔父は、</ B>の意味で最後の務め
</a>の
</ H3>
'' '
パッテン= re.compile(R '<DIV CLASS = "PIC">。*?<IMG SRC = "(。*?)" ALT = "(。*?)"。*?</ div>'再。 S)
RET = patten.findall(コンテンツ)
を印刷(RET)
印刷(LEN(RET))
down_load(RET)

DEFのdown_load(RET):
dirnameは= 'MZ'
RETでTP用:
#抽出された画像アドレス
IMAGE_URL = TP [0]
名画像採取
イメージ名のTP = [-1] [3:-4]
[1]#個のイメージ名= TPの
#= patten1 re.compile(R&LT '<B>(*)</ B>')
= patten1.findall RET1(イメージ名)
#フォルダ名を生成
IFないos.path.exists(dirnameは):
OS。MKDIR(DIRNAME)
ファイル名=イメージ名+ + image_url.split( ' ')'。' [ - 1]
印刷#(ファイル名)
ファイルパス= os.path.join(dirnameは、ファイル名)
#印刷(ファイルパス)
を印刷( 'S ....ピクチャー%をダウンロードする' %ファイル名)
urllib.request.urlretrieve(IMAGE_URL、ファイルパス)
を印刷( '末端ダウンロード写真のS ....%' %ファイル名)
time.sleep(2)

DEFメイン():
は開始ページ番号を入力し
start_page = INT(入力( "開始ページ番号を入力してください"))
end_page = INT(入力)( "終了ページ番号を入力してください")
URL = 'https://www.meizitu.com/a/'
レンジ(START_PAGE、end_page + 1)内のページのために:
印刷(「%sのページのダウンロード.... 。「ページ%)
スプライシングURL
NEW_URL URL = + 'list_1 _' + STR(ページ)+ '.htmlを'
#印刷(ページ)
#印刷(NEW_URL)
要求= get_request(NEW_URL)
コンテンツ= GET_CONTENT(リクエスト)
#プリント(content.read())( 'GBK'をデコード)
parse_content(コンテンツ)
プリント( "结束下载第%S页....." %ページ)
time.sleep(2)
もし__name__ == '__main__':
メイン()

おすすめ

転載: www.cnblogs.com/zhangshuntao123/p/11626704.html