首页 > 解决方案 > 如何更好地自动化需要多个程序和 URL 的程序

问题描述

我正在尝试从名为 82games.com 的网站收集一些特定数据。我目前有一个使用 beautifulsoup、awk 和 sed 的解决方案,但这并不理想。对于初学者,我希望能够遍历多个 html 页面——并在所有页面上迭代地运行我的程序,而不是重做该过程,例如。为每个页面输入一个新的 url 和一个新的 destination.txt 文件。

Python、BS4、awk、sed。

import requests
import re
from bs4 import BeautifulSoup

def function():
    page = requests.get('http://www.82games.com/1819/18ATL16.HTM#bypos')

    soup = BeautifulSoup(page.text, 'html.parser')
    cleantext = BeautifulSoup(page.text, "html.parser").text
    text = str(soup)
    print(type(text))
    print(str(cleantext))
    ans = remove(text)
    return ans

def remove(string): 
    return "".join(string.split())

if __name__ == '__main__':
    function()

驱动程序代码(在 bash 中)

python nba_stats.py | awk NF > JohnCollinsAH2.txt

sed -i '1,/Production By Postion/d' JohnCollinsAH2.txt

标签: pythonawksedbeautifulsoup

解决方案


看看Scrapy。它是一个网络蜘蛛引擎,可让您跟踪链接并输出结构化数据。它与 BeautifulSoup 集成,因此您将能够保留解析逻辑。


推荐阅读