Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用python和beautiful soup将用户定义的搜索词作为几种可能的搜索字段类型之一提交吗?_Python_Beautifulsoup - Fatal编程技术网

我可以使用python和beautiful soup将用户定义的搜索词作为几种可能的搜索字段类型之一提交吗?

我可以使用python和beautiful soup将用户定义的搜索词作为几种可能的搜索字段类型之一提交吗?,python,beautifulsoup,Python,Beautifulsoup,有一个网站可以收集业余运动队及其运动员的数据。你可以输入玩家ID号,网站将返回该玩家的页面,在该页面上你可以导航到他们的“统计”页面并查看他们的统计数据 问题是,这是非常缓慢和乏味的做游戏中(即为播音员)参考球员的统计数据。统计数据的排列也非常糟糕,用户无法控制您看到的内容和查看方式。它基本上是一个大的数字表,字体大小为12,很难一眼就准确地引用 我想写一个基本程序,我可以在游戏开始时加载所有游戏玩家ID,每个都是GUI按钮。这部分我自己可以做得很好。然后,当我想要一个特定玩家的快速统计数据时,

有一个网站可以收集业余运动队及其运动员的数据。你可以输入玩家ID号,网站将返回该玩家的页面,在该页面上你可以导航到他们的“统计”页面并查看他们的统计数据

问题是,这是非常缓慢和乏味的做游戏中(即为播音员)参考球员的统计数据。统计数据的排列也非常糟糕,用户无法控制您看到的内容和查看方式。它基本上是一个大的数字表,字体大小为12,很难一眼就准确地引用

我想写一个基本程序,我可以在游戏开始时加载所有游戏玩家ID,每个都是GUI按钮。这部分我自己可以做得很好。然后,当我想要一个特定玩家的快速统计数据时,我可以点击他们的ID号,脚本将其解析为网站的搜索词,然后导航到他们的统计数据,并返回统计数据值,然后我将对其进行过滤,以仅生成相关数据(例如,该玩家的统计数据以及他们正在玩的游戏的分类)这我也可以做的很好

有问题的网站在返回结果时有一个静态URL,URL不会从一个页面更改到下一个页面,因此我不能简单地从ID号和导航生成URL,在浏览器中它会将我踢回空白搜索表单

因此,我认为我的最后一个选择是使用某种web抓取工具来实际提交ID号作为搜索词,然后在随后的结果页面上,导航到特定元素(“详细信息”按钮),然后导航到结果中的第二个选项卡(“统计”选项卡)。我有Python的实用知识,但我从来没有用过它来抓取网页,在今天之前我也从来没有用过漂亮的汤。我也不太熟悉HTML和搜索表单,或者它们是如何工作的

我一直在关注这里的视频教程:

但当他们开始谈论搜索词时,我有点不知所措,这是一种掩饰

以下是我对代码的了解(不远):

通过检查ID搜索字段和“搜索”按钮,我可以看到以下HTML:

我不太确定如何继续输入要搜索的ID号,并提交它以获得结果页面


如果您有任何建议或见解,我们将不胜感激,干杯。

这对搜索问题并没有帮助,但您似乎可以访问并获得您想要的网站。(另外,为了节省加载时间,我建议您在比赛前从网站加载数据,而不是实时加载,因为在我的机器上,该网站需要大约5秒钟的加载时间)该网站倾向于将您“锁定”到特定的俱乐部,然后查找两个不同俱乐部的两名球员需要您首先更换俱乐部,然后向上看球员。也不可能总是知道哪些玩家会提前参加,或者提前提供他们的身份证号码。此外,球员可能与多个俱乐部有关联,因此当你获得统计数据时,你可能选择了错误的俱乐部,这些数据将不完整或不相关。我更愿意为球员使用固定的URL,但这似乎不可行。你能提供一个链接示例,其中包含特定球员的搜索结果和(或多或少)你想要的输出吗?例如,这里有一个球员总体统计数据:,但是每个赛季成绩的网格线链接到该级别的赛季特定统计数据,这更符合我的要求,但我无法知道什么等级/季节有统计数据,除非先看一个概述:这对搜索问题没有帮助,但似乎你可以访问并获得你想要的网站。(另外,为了节省加载时间,我建议您在比赛前从网站加载数据,而不是实时加载,因为在我的机器上,该网站需要大约5秒钟的加载时间)该网站倾向于将您“锁定”到特定的俱乐部,然后查找两个不同俱乐部的两名球员需要您首先更换俱乐部,然后向上看球员。也不可能总是知道哪些玩家会提前参加,或者提前提供他们的身份证号码。此外,球员可能与多个俱乐部有关联,因此当你获得统计数据时,你可能选择了错误的俱乐部,这些数据将不完整或不相关。我更愿意为球员使用固定的URL,但这似乎不可行。你能提供一个链接示例,其中包含特定球员的搜索结果和(或多或少)你想要的输出吗?例如,这里有一个球员总体统计数据:,但是每个赛季成绩的网格线链接到该级别的赛季特定统计数据,这更符合我的要求,但如果不先看一下概述,我无法知道哪些年级/赛季有统计数据:
import requests
from bs4 import BeautifulSoup as BS

url = 'http://mycricket.cricket.com.au/pages/search.aspx?mode=2'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1'}
response = requests.get(url, headers=headers)
soup = BS(response.content, 'html.parser')