(RPA學習)真實代碼爬蟲場景

自動化場景,和爬蟲的場景很是類似,網頁獲取信息,拾取信息。
但實際利用 Python 代碼進行爬蟲,其中是對於網站服務器進行請求獲取信息,和設計器的獲取信息原理有所不一樣。
如下是實際爬蟲代碼案例代碼:目標是獲取遊戲英雄信息,獲取成功以後,進行英雄選擇而後進行英雄出裝策略。json

from urllib.request import urlretrieve
import requests
import os服務器

「」"
函數說明:打印全部英雄的名字和ID併發

Parameters:
url - GET請求地址
header - headers信息
「」"app

def hero_list(url, header):
print(’’ * 100)
print(’tttt歡迎使用《王者榮耀》出裝下助手!’)
print(’’ * 100)
req = requests.get(url=url, headers=header).json()
flag = 0
for each_hero in req[‘list’]:
flag += 1
print(’%s的ID爲:%-7s’ % (each_hero[‘name’], each_hero[‘hero_id’]), end=’tt’)
if flag == 3:
print(’n’, end=’’)
flag = 0函數

「」"
函數說明:根據equip_id查詢武器名字和價格網站

Parameters:
equip_id - 武器的ID
weapon_info - 存儲全部武器的字典
Returns:
weapon_name - 武器的名字
weapon_price - 武器的價格
「」"ui

def seek_weapon(equip_id, weapon_info):
for each_weapon in weapon_info:
if each_weapon[‘equip_id’] == str(equip_id):
weapon_name = each_weapon[‘name’]
weapon_price = each_weapon[‘price’]
return weapon_name, weapon_priceurl

「」"
函數說明:獲取並打印出裝信息.net

Parameters:
url - GET請求地址,經過Fiddler抓包獲取
header - headers信息
weapon_info - 存儲全部武器的字典
「」"設計

def hero_info(url, header, weapon_info):
req = requests.get(url=url, headers=header).json()
print(’n歷史上的%s:n %s’ % (req‘info’, req‘info’))
for each_equip_choice in req‘info’:
print(’n%s:n %s’ % (each_equip_choice[‘title’], each_equip_choice[‘description’]))
total_price = 0
flag = 0
for each_weapon in each_equip_choice[‘list’]:
flag += 1
weapon_name, weapon_price = seek_weapon(each_weapon[‘equip_id’], weapon_info)
print(’%s:%s’ % (weapon_name, weapon_price), end=’t’)
if flag == 3:
print(’n’, end=’’)
flag = 0
total_price += int(weapon_price)
print(‘神裝套件價格共計:%d’ % total_price)

「」"
函數說明:獲取武器信息

Parameters:
url - GET請求地址,經過Fiddler抓包獲取
header - headers信息
Returns:
weapon_info_dict - 武器信息
「」"

def hero_weapon(url, header):
req = requests.get(url=url, headers=header).json()
weapon_info_dict = req[‘list’]
return weapon_info_dict

if name == ‘main’:
headers = {‘Accept-Charset’: ‘UTF-8’,
‘Accept-Encoding’: ‘gzip,deflate’,
‘User-Agent’: ‘Dalvik/2.1.0 (Linux; U; Android 6.0.1; MI 5 MIUI/V8.1.6.0.MAACNDI)’,
‘X-Requested-With’: ‘XMLHttpRequest’,
‘Content-type’: ‘application/x-www-form-urlencoded’,
‘Connection’: ‘Keep-Alive’,
‘Host’: ‘gamehelper.gm825.com’}
weapon_url = 「http://gamehelper.gm825.com/w...
heros_url = 「http://gamehelper.gm825.com/w...
hero_list(heros_url, headers)
print()
hero_id = input(「請輸入要查詢的英雄ID:」)
hero_url = 「http://gamehelper.gm825.com/w...{}&channel_id=90009a&app_id=h9044j&game_id=7622&game_name=王者榮耀&vcode=12.0.3&version_code=1203&cuid=2654CC14D2D3894DBF5808264AE2DAD7&ovr=6.0.1&device=Xiaomi_MI+5&net_type=1&client_id=1Yfyt44QSqu7PcVdDduBYQ%3D%3D&info_ms=fBzJ%2BCu4ZDAtl4CyHuZ%2FJQ%3D%3D&info_ma=XshbgIgi0V1HxXTqixI%2BKbgXtNtOP0%2Fn1WZtMWRWj5o%3D&mno=0&info_la=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&info_ci=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&mcc=0&clientversion=&bssid=VY%2BeiuZRJ%2FwaXmoLLVUrMODX1ZTf%2F2dzsWn2AOEM0I4%3D&os_level=23&os_id=dc451556fc0eeadb&resolution=1080_1920&dpi=480&client_ip=192.168.0.198&pdunid=a83d20d8」.format(
hero_id)
weapon_info_dict = hero_weapon(weapon_url, headers)
hero_info(hero_url, headers, weapon_info_dict)

以上代碼,調整好 Python 環境以後,可以直接運行,你們有興趣能夠看看代碼效果,感覺實際爬蟲的效率和設計器運行過程的效率比較。真正的大型爬蟲項目,對於併發性和效率要求更高。

做者:藝賽旗RPA
來源:CSDN
原文:https://blog.csdn.net/weixin_... 版權聲明:本文爲博主原創文章,轉載請附上博文連接!

相關文章
相關標籤/搜索