日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

[python](爬虫)如何使用正确的姿势欣赏知乎的“长得好看是怎样一种体验呢?”问答中的相片...

發布時間:2025/3/19 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [python](爬虫)如何使用正确的姿势欣赏知乎的“长得好看是怎样一种体验呢?”问答中的相片... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從在知乎關注了幾個大神,我發現我知乎的主頁畫風突變。經常會出現

***長得好看是怎樣一種體驗呢? 不用***,卻長得好看是一種怎樣的體驗? 什么樣***作為頭像? ...

諸如此類的問答。點進去之后發現果然很不錯啊,大神果然是大神,關注的焦點就是不一樣。

看多了幾次之后,覺得太麻煩了。作為一個基佬,不,直男,其實并不關注中間的過程(文字)。其實就是喜歡看圖片而已,得想個法子方便快捷地瀏覽,不,是欣賞這些圖片。

下載圖片(第一版)

python果然是個好東西,簡單代碼就可以方便快捷地down下一個頁面中的圖片:

#coding=utf-8 import urllib import redef getHtml(url):page = urllib.urlopen(url)html = page.read()return htmldef getImg(html):reg = r'original="([0-9a-zA-Z:/._]+?)" data-actualsrc'imgre = re.compile(reg)imglist = re.findall(imgre,html)x = 0for imgurl in imglist:print imgurlsubreg = r'\.([a-z]+?$)'subre = re.compile(subreg)subs2 = re.findall(subre,imgurl)name = 'e://pics/%s.%s' % (x, subs2[0])urllib.urlretrieve(imgurl, name)x += 1def getPage(text):reg = r'data-pagesize="([0-9]+?)"'rec = re.compile(reg)list = re.findall(rec,text)return list[0]url = "https://www.zhihu.com/question/****" # 把問題url貼到這里 html = getHtml(url) getImg(html) print "page=%s" % getPage(html) print "done!"

運行腳本

(好像畫風不太對啊)

怎么才幾張圖片,原文里面應該很多圖片的。

下載圖片(第二版)

調試一下可以發現,網頁并不是一次性加載出所有答案的。點擊網頁最底下的【更多】按鈕,服務端才會返回剩下的內容。那么腳本就需要修改一下了:

  • 先獲取頁面,從頁面中獲取頁碼;
  • 根據頁碼,下載下所有頁中的圖片。
  • #coding=utf-8 import requests import shutil import re import urllib import astcount=0 def getHtml(url):r = requests.get(url)return r.textdef saveImage(url, path):r = requests.get(url, stream=True)if r.status_code == 200:with open(path, 'wb') as f:r.raw.decode_content = Trueshutil.copyfileobj(r.raw, f)del rreturn 0def getImg(html):global countreg = r'original="([0-9a-zA-Z:/._]+?)" data-actualsrc'imgre = re.compile(reg)imglist = re.findall(imgre,html)for imgurl in imglist:count += 1subreg = r'\.([a-z]+?$)'subre = re.compile(subreg)subs2 = re.findall(subre,imgurl)path = 'e://pics/%s.%s' % (count, subs2[0])I = saveImage(imgurl, path)print '%s --> %s ' % (count, imgurl)def getPage(text):reg = r'data-pagesize="([0-9]+?)"'rec = re.compile(reg)list = re.findall(rec,text)return list[0]question = 27203*** # 問題ID url = "https://www.zhihu.com/question/%s" % (question) html = getHtml(url) getImg(html)page = int(getPage(html)) next_url = "https://www.zhihu.com/node/QuestionAnswerListV2"if page > 1:for i_page in range(2, page):next_page = i_page * 10params = '{"url_token":%s, "pagesize":%s, "offset": %s}' % (question, page, next_page)post_data = {'method':'next', 'params':params, '_xsrf': '521beffc0ca2d5747d6d981c6cc25dea'}data=urllib.urlencode(post_data)headers = {'Content-Type':'application/x-www-form-urlencoded'}r = requests.post(next_url, data=data, headers=headers)text = r.texttext = ast.literal_eval(text)text = text['msg']text = ''.join(text)text = text.replace('\\', '')getImg(text)print "page=%s" % page print "Down %s pics !!!" % count

    ?

    再次運行腳本

    畫風終于對了,這個腳本順利地爬下了10頁中的所有圖片。

    呃,我趕著去欣賞圖片去了,拜了個拜。

    總結

    以上是生活随笔為你收集整理的[python](爬虫)如何使用正确的姿势欣赏知乎的“长得好看是怎样一种体验呢?”问答中的相片...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。