国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python模擬登錄微博并爬取表情包

Python模擬登錄微博并爬取表情包

2021-11-21 12:04weixin_43649691 Python

前段時(shí)間爬取的知乎表情包用完了嗎?今天再帶大家去微博爬一波表情包吧.文中有非常詳細(xì)的代碼示例,廢話不多說,讓我們愉快地開始吧,需要的朋友可以參考下

一、開發(fā)工具

**Python****版本:**3.6.4

相關(guān)模塊:

DecryptLogin模塊;

argparse模塊;

requests模塊;

prettytable模塊;

tqdm模塊;

lxml模塊;

fake_useragent模塊;

以及一些Python自帶的模塊。

二、環(huán)境搭建

安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。

三、原理簡介

本來這個(gè)爬蟲是想作為講python異步爬蟲的一個(gè)例子的,昨天代碼寫完測試了一下,結(jié)果是我微博賬號(hào)和ip都直接被封了(并發(fā)數(shù)設(shè)的500)。

然后我去谷歌搜了一下別人寫的異步爬蟲教程,測試用的都是些沒啥反爬措施的小網(wǎng)站。

于是今天改了下代碼,就先整個(gè)普普通通的微博小爬蟲算了。

言歸正傳,和之前的微博爬蟲類似,我們還是先利用DecryptLogin進(jìn)行微博賬戶的模擬登錄:

?
1
2
3
4
5
6
'''模擬登錄'''
@staticmethod
def login(username, password):
  lg = login.Login()
  _, session = lg.weibo(username, password, 'mobile')
  return session

然后讓使用者輸入目標(biāo)微博用戶的id:

?
1
user_id = input('請輸入目標(biāo)用戶ID(例如: 2168613091) ——> ')

微博用戶id在這可以看到:

Python模擬登錄微博并爬取表情包

根據(jù)用戶輸入的微博用戶id,我們訪問如下兩個(gè)鏈接:

?
1
2
url = f'https://weibo.cn/{user_id}'
url = f'https://weibo.cn/{user_id}/info'

然后利用xpath提取用戶的基本信息:

Python模擬登錄微博并爬取表情包

Python模擬登錄微博并爬取表情包

打印這些信息,讓使用者確認(rèn)自己輸入的微博用戶id是否無誤:

?
1
2
3
4
5
6
tb = prettytable.PrettyTable()
tb.field_names = ['用戶名', '關(guān)注數(shù)量', '被關(guān)注數(shù)量', '微博數(shù)量', '微博頁數(shù)']
tb.add_row([nickname, num_followings, num_followers, num_wbs, num_wb_pages])
print('獲取的用戶信息如下:')
print(tb)
is_download = input('是否爬取該微博用戶發(fā)的所有圖片?(y/n, 默認(rèn): y) ——> ')

如果無誤,就開始爬取該用戶發(fā)的所有微博里的圖片:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'''下載所有圖片'''
def __downloadImages(self, userinfos, savedir):
  # 一些必要的信息
  num_wbs = userinfos.get('num_wbs')
  user_id = userinfos.get('user_id')
  num_wb_pages = userinfos.get('num_wb_pages')
  # 提取圖片鏈接并下載圖片
  page_block_size = random.randint(1, 5)
  page_block_count = 0
  for page in tqdm(range(1, num_wb_pages+1)):
    # --提取圖片鏈接
    response = self.session.get(f'https://weibo.cn/{user_id}?page={page}', headers=self.headers)
    image_urls = self.__extractImageUrls(response)
    # --下載圖片
    for url in image_urls:
      try:
        res = requests.get(url, headers={'user-agent': self.ua.random}, stream=True)
        with open(os.path.join(savedir, url.split('/')[-1]), 'wb') as fp:
          for chunk in res.iter_content(chunk_size=32):
            fp.write(chunk)
        print('[INFO]: Download an image from: ', url)
      except:
        pass
    # --避免給服務(wù)器帶來過大壓力and避免被封, 每爬幾頁程序就休息一下
    page_block_count += 1
    if page_block_count % page_block_size == 0:
      time.sleep(random.randint(6, 12))
      page_block_size = random.randint(1, 5)
      page_block_count = 0

這里避免爬蟲被BAN的措施主要有以下幾點(diǎn):

  • 每爬n頁數(shù)據(jù)就暫停x秒,其中n是隨機(jī)生成的,且n一直在變化,x也是隨機(jī)生成的,且x也一直在變化;
  • 下載圖片時(shí),使用隨機(jī)的ua,并且不使用登錄后的session來請求圖片鏈接來下載該圖片。

從返回的微博頁內(nèi)容里提取圖片鏈接時(shí),需要注意:

  • 對轉(zhuǎn)發(fā)微博的微博id和原創(chuàng)微博的微博id提取方式不同;
  • 只有單張圖片的微博和有多張圖片的微博提取圖片鏈接的方式是不同的;
  • 有時(shí)候圖片鏈接提取會(huì)出錯(cuò),http變成了ttp,所以需要對提取的圖片鏈接進(jìn)行后處理,然后再去請求這些鏈接來下載圖片。

大體的思路就是這樣,因?yàn)槠鋵?shí)沒啥難點(diǎn),就是用xpath來提取我們需要的信息就行了,所以就這么粗略地介紹一下吧。T_T

運(yùn)行方式:

?
1
python weiboEmoji.py --username 用戶名 --password 密碼

到此這篇關(guān)于Python模擬登錄微博并爬取表情包的文章就介紹到這了,更多相關(guān)Python爬取微博表情包內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/weixin_43649691/article/details/117455878

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久福利电影 | 日韩欧美中文字幕在线观看 | 在线观看亚洲 | 国产欧美综合一区二区三区 | 亚洲一区二区在线播放 | 精品国产乱码久久久久久牛牛 | 欧美日韩国产综合视频 | 亚洲欧美综合精品久久成人 | 免费观看一区二区三区毛片软件 | 午夜视频在线观看网站 | a在线看 | 久久69精品久久久久久久电影好 | 日本不卡高字幕在线2019 | 午夜免费视频网站 | 成人欧美一区二区三区在线观看 | 亚洲国产一区二区在线观看 | 日韩成人免费电影 | 国户精品久久久久久久久久久不卡 | 色视频在线免费观看 | 中文av电影 | 免费不卡视频 | 国产v日产∨综合v精品视频 | 亚洲精彩视频 | 亚洲人成在线播放 | 成人网址在线观看 | 99久久精品一区二区成人 | 成人a视频在线观看 | 伊人av在线 | 一区二区日本 | 欧美一级片 | 日韩av视屏 | 精品麻豆剧传媒av国产九九九 | 国产精品成人国产乱一区 | 久久综合一区 | 中文字幕在线电影观看 | 精品九| 99精品欧美一区二区三区综合在线 | 视频一区二区三区在线观看 | 午夜免费av| 88av网站| 成人午夜电影网 |