python手枪_Python入门,爬虫训练——枪械查询
一、效果圖:
二、怎么做到的?
1,首先安裝requests、bs4. 這兩個第三方模塊。
我們按住win+R 在彈出來的窗口上輸入cmd,來到命令窗口,輸入pip install requests、pip install bs4即可,網(wǎng)速慢的可以切換至國內(nèi)源。
2,然后我們來到槍械介紹網(wǎng)址:http://news.4399.com/pubgsy/wqdq/
進(jìn)入之后,我們發(fā)現(xiàn)這里有各式各樣的,小手槍,突擊槍,微沖,大狙,手榴彈等等。。。
按電腦鍵盤F12,進(jìn)入開發(fā)者工具,可以發(fā)現(xiàn)這些信息在列表項(xiàng)下面的a超鏈接標(biāo)簽里面,。
為了后面更加容易找到自己的槍械,我們可以把這個槍械的種類爬下來。
這樣我們根據(jù)自己選擇,選擇一把槍械,這樣就可以得到這個槍械的網(wǎng)址了。
根據(jù)這個網(wǎng)址,我們可以來到這個界面
可以發(fā)現(xiàn),這里有許多關(guān)于這把 AKM槍械的信息,下面還有槍械威力的數(shù)據(jù),我們只需把這些信息爬取得到即可。
我們按F12,發(fā)現(xiàn)這些信息都在這個標(biāo)簽下面,這個標(biāo)簽一共有四個,我們只需前三個標(biāo)簽里面的數(shù)據(jù)和信息即可。
代碼實(shí)現(xiàn):
soup2=firearms_introduce[0]
########################################################################### 槍械介紹
_list1=soup2.select('div.areabd>div.hreodata>table>tbody>tr.item')
_list2=_list1[0].select('td')
str2=''
for i in range(len(_list2)):
if (i+1)%2==1:
str2+=_list2[i].get_text()+':'
else:
str2+=_list2[i].get_text()+'\n'
print(str2)
for i in range(1,len(_list1)):
_list3=_list1[i].select('td')
str2=_list3[0].get_text()+':'+(_list3[1].get_text()).strip('\n')
if len(str2)>35:
str2=str2[:35]+'\n'+str2[35:]
print(str2)
########################################################################### 槍械屬性
soup3=firearms_introduce[1]
_list4=soup3.select('div.skilldata>table>tbody>tr')
_list5=_list4[0].select('th')
_list6=_list4[1].select('td')
for i in range(len(_list5)):
str1=_list5[i].get_text()+':'+_list6[i].get_text()
print(str1)
########################################################################### 武器傷害
soup4=firearms_introduce[2]
_list7=soup4.select('div.skilldata>table>tbody>tr')
list_1=_list7[0].select('td>strong')
str3=list_1[0].get_text()
str4=list_1[1].get_text()
_list8=_list7[1].select('td')
_list9=_list7[2].select('td')
for i in range(len(_list8)):
if i==0:
print(str3)
elif i==4:
print(str4)
str1=_list8[i].get_text()+':'+_list9[i].get_text()
print(str1)
通過對運(yùn)行結(jié)果分析,我們可以知道AKM比M416好(除了射速慢),但AKM后坐力大,通過對數(shù)據(jù)的對比分析,這樣,我們在跳傘后可以優(yōu)先選擇屬于自己的猛男槍,也就能大吉大利,每天吃雞~!
最后貢獻(xiàn)全部代碼:
# -*- coding: utf-8 -*-
# @Time : 2020/4/6 12:57
# @Author : LiZe
# @File : 和平精英.py
# @Software : PyCharm
import requests
from bs4 import BeautifulSoup
def get_url(): # 得到想查看的槍械url
MAIN=True
url='http://news.4399.com/pubgsy/wqdq/'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3756.400 QQBrowser/10.5.4039.400'}
html=requests.get(url=url,headers=headers)
html.encoding='gb2312' # 編碼
soup=BeautifulSoup(html.text,'lxml')
content=soup.select('div.area.wp.mt10.slide_wp')[0] # 得到相關(guān)槍械的信息
list1=content.select('ul.cf.slide_nav>li') # 槍械的種類 如 突擊步槍、機(jī)槍、狙擊槍
print('--------------歡迎來到和平精英槍械知識庫--------------')
print('相關(guān)信息如下:')
for i in range(len(list1)):
list1[i]=list1[i].get_text()
print('【{}】-{}'.format(i+1,list1[i]))
print('*' * 50)
id=input('請輸入你的選項(xiàng)(輸入槍械種類如:步槍、狙擊槍或者序號均可):')
list2=soup.select('ul.clist.l170.cf') # 所有槍械的信息
dict1={} # 構(gòu)建一個字典,關(guān)鍵字為槍械的種類,值為槍械信息的列表
for i in range(len(list2)):
list3=list2[i].select('li>a')
for j in range(len(list3)):
list3[j]=[list3[j]['href'],list3[j].get_text()] # 第一值是槍械的網(wǎng)址、第二個值是槍械的名稱
dict1[list1[i]]=list3
try:
list4=dict1[id] # 你的選擇 通過 槍械種類名 查找信息
except:
MAIN=False
pass
finally:
if MAIN==False: # 如果MAIN=False,意味著使用序號查詢的,否則用的槍械種類名
name=list1[int(id)-1]
list4=dict1[name]
else:
name=id
print('{}-槍械名稱如下:'.format(name))
for i in range(len(list4)):
print('【{}】--{}'.format(i+1,list4[i][1]))
print('*' * 50)
id1=int(input('請輸入你想查看的槍械序號:'))-1
url1=list4[id1][0]
return url1
def get_info(url):
html1=requests.get(url=url)
html1.encoding='gb2312'
soup1=BeautifulSoup(html1.text,'lxml') # 槍械介紹
firearms_introduce=soup1.select('div.area.wp') # 這是一個列表類型,總長度為4
soup2=firearms_introduce[0]
########################################################################### 槍械介紹
_list1=soup2.select('div.areabd>div.hreodata>table>tbody>tr.item')
_list2=_list1[0].select('td')
str2=''
for i in range(len(_list2)):
if (i+1)%2==1:
str2+=_list2[i].get_text()+':'
else:
str2+=_list2[i].get_text()+'\n'
print(str2)
for i in range(1,len(_list1)):
_list3=_list1[i].select('td')
str2=_list3[0].get_text()+':'+(_list3[1].get_text()).strip('\n')
if len(str2)>35:
str2=str2[:35]+'\n'+str2[35:]
print(str2)
########################################################################### 槍械屬性
soup3=firearms_introduce[1]
_list4=soup3.select('div.skilldata>table>tbody>tr')
_list5=_list4[0].select('th')
_list6=_list4[1].select('td')
for i in range(len(_list5)):
str1=_list5[i].get_text()+':'+_list6[i].get_text()
print(str1)
########################################################################### 武器傷害
soup4=firearms_introduce[2]
_list7=soup4.select('div.skilldata>table>tbody>tr')
list_1=_list7[0].select('td>strong')
str3=list_1[0].get_text()
str4=list_1[1].get_text()
_list8=_list7[1].select('td')
_list9=_list7[2].select('td')
for i in range(len(_list8)):
if i==0:
print(str3)
elif i==4:
print(str4)
str1=_list8[i].get_text()+':'+_list9[i].get_text()
print(str1)
if __name__ == '__main__':
url=get_url()
get_info(url)
結(jié)尾:歡迎加入我們一起學(xué)習(xí)
最后,拿起你的小手機(jī),點(diǎn)贊收藏,加扣群,里面有更多更好玩的資料源碼分享。
正所謂,來者都是客,咳咳,不對,是你有一塊錢,我有一塊錢,我們合在一起就是兩塊錢,知識,是可以互相交流的^_^
總結(jié)
以上是生活随笔為你收集整理的python手枪_Python入门,爬虫训练——枪械查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 执行文件异常报错:ImportError
- 下一篇: html仿手机界面,javascript