python手枪_Python入门,爬虫训练——枪械查询

一、效果图:

926001-20200912101017152-905862466.png

926001-20200912101021302-227563552.png

926001-20200912101024815-819175755.png

二、怎么做到的?

1,首先安装requests、bs4. 这两个第三方模块。

我们按住win+R 在弹出来的窗口上输入cmd,来到命令窗口,输入pip install requests、pip install bs4即可,网速慢的可以切换至国内源。

2,然后我们来到枪械介绍网址:http://news.4399.com/pubgsy/wqdq/

进入之后,我们发现这里有各式各样的,小手枪,突击枪,微冲,大狙,手榴弹等等。。。

926001-20200912101522520-584146622.png

按电脑键盘F12,进入开发者工具,可以发现这些信息在列表项下面的a超链接标签里面,。

926001-20200912101752591-649752400.png

为了后面更加容易找到自己的枪械,我们可以把这个枪械的种类爬下来。

926001-20200912102036410-1978158766.png

这样我们根据自己选择,选择一把枪械,这样就可以得到这个枪械的网址了。

根据这个网址,我们可以来到这个界面

926001-20200912102144317-934981043.png

926001-20200912102149095-1717572006.png

可以发现,这里有许多关于这把 AKM枪械的信息,下面还有枪械威力的数据,我们只需把这些信息爬取得到即可。

我们按F12,发现这些信息都在这个标签下面,这个标签一共有四个,我们只需前三个标签里面的数据和信息即可。

926001-20200912102242101-540936949.png

代码实现:

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)

通过对运行结果分析,我们可以知道AKM比M416好(除了射速慢),但AKM后坐力大,通过对数据的对比分析,这样,我们在跳伞后可以优先选择属于自己的猛男枪,也就能大吉大利,每天吃鸡~!

最后贡献全部代码:

# -*- 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] # 得到相关枪械的信息

list1=content.select('ul.cf.slide_nav>li') # 枪械的种类 如 突击步枪、机枪、狙击枪

print('--------------欢迎来到和平精英枪械知识库--------------')

print('相关信息如下:')

for i in range(len(list1)):

list1[i]=list1[i].get_text()

print('【{}】-{}'.format(i+1,list1[i]))

print('*' * 50)

id=input('请输入你的选项(输入枪械种类如:步枪、狙击枪或者序号均可):')

list2=soup.select('ul.clist.l170.cf') # 所有枪械的信息

dict1={} # 构建一个字典,关键字为枪械的种类,值为枪械信息的列表

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()] # 第一值是枪械的网址、第二个值是枪械的名称

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)

结尾:欢迎加入我们一起学习

最后,拿起你的小手机,点赞收藏,加扣群,里面有更多更好玩的资料源码分享。

正所谓,来者都是客,咳咳,不对,是你有一块钱,我有一块钱,我们合在一起就是两块钱,知识,是可以互相交流的^_^

926001-20200911154604703-977490475.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 865. 具有所有最深结点的最小子树(递归)

1. 题目 给定一个根为 root 的二叉树,每个结点的深度是它到根的最短距离。 如果一个结点在整个树的任意结点之间具有最大的深度,则该结点是最深的。 一个结点的子树是该结点加上它的所有后代的集合。 返回能满足“以该结点为根的子树中包含所有最深的…

为什么python是解释型面向对象的语言_python为什么是面向对象的

Python虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于Python来说一切皆为对象。正因为如此,在Python中创建一个类和对象是很容易的,当然如果习惯面向过程或者函数的写法也是可以的,Python并不做硬性的…

AI写剧本炸场戏剧节!DeepMind出品,马斯克看了直夸,网友看到接口悟了

文|羿阁 萧箫 发自 凹非寺源|量子位OpenAI的ChatGPT大火后,DeepMind终于也坐不住了!这次,他们推出一款名为“Dramatron”的新AI,用上它人人都可以变身编剧或作家。只需给出一句话大纲,Dramatron…

程序员面试金典 - 面试题 08.14. 布尔运算(区间动态规划)

1. 题目 给定一个布尔表达式和一个期望的布尔结果 result,布尔表达式由 0 (false)、1 (true)、& (AND)、 | (OR) 和 ^ (XOR) 符号组成。 实现一个函数,算出有几种可使该表达式得出 result 值的括号方法。 示例 1: 输入: s "1^0|0|1", r…

推荐优质的深度学习公众号

人工智能行业目前已接近饱和状态,如何从内卷中脱颖而出,除了极强的自律之外,系统性的学习方法也很重要。今天给大家推荐10个原创公众号,这些公众号定期会发些高质量原创,希望可以让你更高效的学习。小白学视觉哈工大博…

SQLServer安装挂起解决方法

出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误。无法进行下去。 具体步骤是: 1)添加/删除程序中彻底删除sql server。 2)将没有删除的sql server目录也删除掉。 …

程序员面试金典 - 面试题 17.06. 2出现的次数(找递推规律)

1. 题目 编写一个方法&#xff0c;计算从 0 到 n (含 n) 中数字 2 出现的次数。 示例: 输入: 25 输出: 9 解释: (2, 12, 20, 21, 22, 23, 24, 25)(注意 22 应该算作两次)提示&#xff1a; n < 10^9来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;…

python8个程序语言_所有程序员必知--2019年最流行的8种编程语言和框架

上图是您应该在2019年根据各种&#xff0c;统计和事实寻找的8种最佳编程语言和框架的列表。在技​​术不断进步的当代世界中&#xff0c;计算机无处不在。为计算机编写程序是当前IT市场上最关键的工作配置文件之一。 您是否想过还有比这更忙的任务&#xff1f;它正在选择合适的…

ChatGPT进入百度“弱智吧”后,疯了

文 | 兔子酱无论你玩不玩贴吧&#xff0c;“弱智吧”的大名很多人应该听说过。如今弱智吧的关注人数已经超过了200万。。。不得不说&#xff0c;能将这么多“弱智”聚在一起&#xff0c;“弱智吧”撑起了后百度贴吧时代的辉煌。。。来一起感受下“弱智吧”的日常&#xff1a;能…

打印网页时背景图片的问题

当我们打印一个网页时&#xff0c;默认情况下&#xff0c;网页的背景图片是不会被打印出来的 这与我们的打印代码无关&#xff0c;需要设置IE便可&#xff0c;如下图&#xff1a; 转载于:https://www.cnblogs.com/blodfox777/archive/2008/08/05/1260860.html

程序员面试金典 - 面试题 08.02. 迷路的机器人(DFS/动态规划)

文章目录1. 题目2. 解题2.1 DFS2.2 动态规划1. 题目 设想有个机器人坐在一个网格的左上角&#xff0c;网格 r 行 c 列。 机器人只能向下或向右移动&#xff0c;但不能走到一些被禁止的网格&#xff08;有障碍物&#xff09;。 设计一种算法&#xff0c;寻找机器人从左上角移动…

python数据分析开发环境_在MAC上搭建python数据分析开发环境

最近工作转型到数据开发领域&#xff0c;想在本地搭建一个数据开发环境。自己有三年python开发经验&#xff0c;马上想到使用numpy、scipy、sklearn、pandas搭建一套数据开发环境。 ubuntu的环境&#xff0c;百度中文章比较多&#xff0c;搭建起来非常顺利。MAC环境的资料比较少…

方向盘开极品飞车9很Hapyy

一直以来&#xff0c;总是找不到一款自己心爱的游戏&#xff0c;呵呵&#xff0c;弄到个方向盘&#xff0c;开极品很HI喔。。。 虽然现在没空去玩&#xff0c;只能把方向盘放在电脑的左边&#xff0c;没事的时候只能看看了&#xff0c;不过有个期盼可以玩一把的游戏也很不错呀&…

负样本为王,百篇论文概览负采样方法的前世今生

文&#xff5c;徐澜玲源&#xff5c;RUC AI Box目录1. 研究背景1.1 什么是负采样&#xff1f;1.2 为什么需要负采样&#xff1f;1.3 为什么需要高质量的负采样&#xff1f;2. 负采样方法分类梳理2.1 静态负采样2.2 强负例采样2.3 对抗式负采样2.4 基于图的负采样2.5 引入额外信…

程序员面试金典 - 面试题 17.25. 单词矩阵(Trie树+DFS回溯,hard)

1. 题目 给定一份单词的清单&#xff0c;设计一个算法&#xff0c;创建由字母组成的面积最大的矩形&#xff0c;其中每一行组成一个单词(自左向右)&#xff0c;每一列也组成一个单词(自上而下)。 不要求这些单词在清单里连续出现&#xff0c;但要求所有行等长&#xff0c;所有…

python mysql操作封装库_python封装mysq操作,进行数据库的增删改

python操作mysql进行封装&#xff0c;封装的好处我就不提了&#xff0c;以下是我做项目时的一个封装&#xff0c;大家可以根据实际需要进行自己的一个封装我封装的内容&#xff1a;1.数据库的配置文件2.获取数据配置文件的地址3.连接数据库的操作4.操作mysql的语句5.调用mysql的…

SQL2000数据库中删除“坏表”的方法

SQL2000数据库中删除“坏表”的方法在一些网站或者软件系统中&#xff0c;由于安全或者程序异常等问题&#xff0c;可能会在SQL Server 2000中造成一个异常问题&#xff1a;在企业管理器中打开数据库发现有一些“坏表”&#xff0c;即无法使用&#xff0c;也无法正常删除。其原…

偶然当程序员却拿下图灵奖,超算榜单之父讲述人生开挂经历

文&#xff5c;衡宇 发自 凹非寺源&#xff5c;量子位40年前偶然走上程序员道路的Jack Dongarra&#xff0c;是今年的图灵奖得主。奖项设立机构美国计算机协会&#xff08;ACM&#xff09;表示&#xff0c;Dongarra的算法与软件成果推动了高性能计算&#xff08;HPC&#xff09…

程序员面试金典 - 面试题 16.18. 模式匹配(逻辑题)

1. 题目 你有两个字符串&#xff0c;即pattern和value。 pattern字符串由字母"a"和"b"组成&#xff0c;用于描述字符串中的模式。 例如&#xff0c;字符串"catcatgocatgo"匹配模式"aabab"&#xff08;其中"cat"是"a&q…

拼团小程序源码_拼团软件微信拼团小程序拼团卖水果、让您快速引流

微信作为国内最大的社交平台&#xff0c;已经拥有11亿的用户&#xff0c;成为社交电商最主要的流量平台。从电商商家到线下门店&#xff0c;从品牌商到个体户&#xff0c;大家都想瓜分微信平台的流量。同时&#xff0c;微信也在不断完善小程序在各业务场景中的接口&#xff0c;…