如何在每次迭代中循环和保存数据

用户2355903

我正在尝试学习如何在 python 中从网页中抓取数据,并且在如何在 python 中构建嵌套循环时遇到了麻烦。我在如何解决这个问题方面得到了一些帮助(如何从“a”标签中提取链接)。我试图让该代码基本上遍历不同周(最终是几年)的网页。我目前拥有的内容如下,但它并没有在我想要的两周内迭代并保存它。

import requests, re, json
from bs4 import BeautifulSoup
weeks=['1','2']
data = pd.DataFrame(columns=['Teams','Link'])

scripts_head = soup.find('head').find_all('script')
all_links = {}
for i in weeks:
    r = requests.get(r'https://www.espn.com/college-football/scoreboard/_/year/2018/seasontype/2/week/'+i)
    soup = BeautifulSoup(r.text, 'html.parser')
    for script in scripts_head:
        if 'window.espn.scoreboardData' in script.text:
            json_scoreboard = json.loads(re.search(r'({.*?});', script.text).group(1))
            for event in json_scoreboard['events']:
                name = event['name']
                for link in event['links']:
                    if link['text'] == 'Gamecast':
                        gamecast = link['href']
                all_links[name] = gamecast
                #Save data to dataframe
                data2=pd.DataFrame(list(all_links.items()),columns=['Teams','Link'])
        #Append new data to existing data        
        data=data.append(data2,ignore_index = True)


#Save dataframe with all links to csv for future use
data.to_csv(r'game_id_data.csv')

编辑:所以要添加一些说明,它从一周开始创建数据的重复项,并反复将其附加到末尾。我还编辑了代码以包含适当的库,它应该能够复制和粘贴并在 python 中运行。

用户2355903

所以我想出的解决方法如下,我仍然在我的最终数据集中得到重复的游戏 ID,但至少我正在遍历整个所需的集合并获取所有这些 ID。然后最后我去重复了。

import requests, re, json
from bs4 import BeautifulSoup
import csv
import pandas as pd

years=['2015','2016','2017','2018']
weeks=['1','2','3','4','5','6','7','8','9','10','11','12','13','14']
data = pd.DataFrame(columns=['Teams','Link'])

all_links = {}
for year in years:
    for i in weeks:
        r = requests.get(r'https://www.espn.com/college-football/scoreboard/_/year/'+ year + '/seasontype/2/week/'+i)
        soup = BeautifulSoup(r.text, 'html.parser')
        scripts_head = soup.find('head').find_all('script')
        for script in scripts_head:
            if 'window.espn.scoreboardData' in script.text:
                json_scoreboard = json.loads(re.search(r'({.*?});', script.text).group(1))
                for event in json_scoreboard['events']:
                    name = event['name']
                    for link in event['links']:
                        if link['text'] == 'Gamecast':
                            gamecast = link['href']
                    all_links[name] = gamecast
                #Save data to dataframe
                data2=pd.DataFrame(list(all_links.items()),columns=['Teams','Link'])
                #Append new data to existing data        
                data=data.append(data2,ignore_index = True)


#Save dataframe with all links to csv for future use
data_test=data.drop_duplicates(keep='first')
data_test.to_csv(r'all_years_deduped.csv')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Ruby中循环的每次迭代中读取数字?

来自分类Dev

如何比较在foreach循环的每次迭代中返回的数据

来自分类Dev

如何在节点js中循环,等到每次迭代

来自分类Dev

如何在循环的每次迭代中使用for循环创建新的数据帧?

来自分类Dev

我如何在for循环的每次迭代中将值从HTML标记传递给Vue的数据对象

来自分类Dev

在每次for循环迭代之后,如何在Ionic的应用程序视图中添加数据?

来自分类Dev

如何在 C 中创建连续循环,其中循环的每次迭代在其内部的循环的每次迭代中发生一次

来自分类Dev

如何在循环的每次迭代中将元素添加到Bash中的数组中?

来自分类Dev

如何在Android中的for循环的每次迭代中将值添加到HashMap

来自分类Dev

在Markdown PDF中,如何在每次for循环迭代后添加分页符?

来自分类Dev

我如何在underscore.js的_.each循环的每次迭代中添加延迟?

来自分类Dev

如何在PHP中使用for循环在每次迭代中将300加到变量中?

来自分类Dev

如何在每次循环迭代中删除数组的前三个索引 - JS

来自分类Dev

如何在每次循环迭代中创建一个新的 JSON 对象

来自分类Dev

如何在Rust中从for循环中迭代和提取值

来自分类Dev

如何在R中执行脚本的循环和迭代?

来自分类Dev

如何在循环的每次迭代中等待异步操作完成

来自分类Dev

如何在foreach循环中的每次迭代后进行延迟?

来自分类Dev

Spark for循环-在每次迭代中覆盖旧数据帧

来自分类Dev

在“ for”循环的每次迭代中,如何增加mysql中的行?

来自分类Dev

如何编写在每次迭代中运行异步命令的for循环?

来自分类Dev

如何通过循环在每次迭代中设置列表的名称

来自分类Dev

如何将每次迭代的输出保存到结构中

来自分类Dev

如何在pyspark中使用saveAsTable在每次迭代中保存具有不同表名的spark数据帧

来自分类Dev

如何在每次循环浏览时将其保存到新的csv文件中

来自分类Dev

在双循环中每次迭代两个索引时保存的行数据

来自分类常见问题

如何在列表理解的每次迭代中更改变量?

来自分类Dev

如何在列表理解的每次迭代中更改变量?

来自分类Dev

如何在每次循环迭代时使用for循环为SVR生成X_train?

Related 相关文章

  1. 1

    如何在Ruby中循环的每次迭代中读取数字?

  2. 2

    如何比较在foreach循环的每次迭代中返回的数据

  3. 3

    如何在节点js中循环,等到每次迭代

  4. 4

    如何在循环的每次迭代中使用for循环创建新的数据帧?

  5. 5

    我如何在for循环的每次迭代中将值从HTML标记传递给Vue的数据对象

  6. 6

    在每次for循环迭代之后,如何在Ionic的应用程序视图中添加数据?

  7. 7

    如何在 C 中创建连续循环,其中循环的每次迭代在其内部的循环的每次迭代中发生一次

  8. 8

    如何在循环的每次迭代中将元素添加到Bash中的数组中?

  9. 9

    如何在Android中的for循环的每次迭代中将值添加到HashMap

  10. 10

    在Markdown PDF中,如何在每次for循环迭代后添加分页符?

  11. 11

    我如何在underscore.js的_.each循环的每次迭代中添加延迟?

  12. 12

    如何在PHP中使用for循环在每次迭代中将300加到变量中?

  13. 13

    如何在每次循环迭代中删除数组的前三个索引 - JS

  14. 14

    如何在每次循环迭代中创建一个新的 JSON 对象

  15. 15

    如何在Rust中从for循环中迭代和提取值

  16. 16

    如何在R中执行脚本的循环和迭代?

  17. 17

    如何在循环的每次迭代中等待异步操作完成

  18. 18

    如何在foreach循环中的每次迭代后进行延迟?

  19. 19

    Spark for循环-在每次迭代中覆盖旧数据帧

  20. 20

    在“ for”循环的每次迭代中,如何增加mysql中的行?

  21. 21

    如何编写在每次迭代中运行异步命令的for循环?

  22. 22

    如何通过循环在每次迭代中设置列表的名称

  23. 23

    如何将每次迭代的输出保存到结构中

  24. 24

    如何在pyspark中使用saveAsTable在每次迭代中保存具有不同表名的spark数据帧

  25. 25

    如何在每次循环浏览时将其保存到新的csv文件中

  26. 26

    在双循环中每次迭代两个索引时保存的行数据

  27. 27

    如何在列表理解的每次迭代中更改变量?

  28. 28

    如何在列表理解的每次迭代中更改变量?

  29. 29

    如何在每次循环迭代时使用for循环为SVR生成X_train?

热门标签

归档