如何使用python跟踪Web垃圾处理过程

如何使用python跟踪Web垃圾处理过程,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我正在使用BeautifulSoup运行一个Python脚本,以便从web文章中提取文本、主题和标记。该网站共有210页,每页包含10篇文章。(每篇文章的url存储在一个txt文件中) 我正在使用以下代码: data = [] with open('urls.txt', 'r') as inf: for row in inf: url = row.strip() response = requests.get(url, headers={'User-ag

我正在使用BeautifulSoup运行一个Python脚本,以便从web文章中提取文本、主题和标记。该网站共有210页,每页包含10篇文章。(每篇文章的url存储在一个txt文件中)

我正在使用以下代码:

data = []

with open('urls.txt', 'r') as inf:
    for row in inf:
        url = row.strip()
        response = requests.get(url, headers={'User-agent': 'Mozilla/5.0'})
            
        if response.ok:
            try:
                soup = BeautifulSoup(response.text,"html.parser")
                text = soup.select_one('div.para_content_text').get_text(strip=True)
                topic = soup.select_one('div.article_tags_topics').get_text(strip=True)
                tags = soup.select_one('div.article_tags_tags').get_text(strip=True)

            except AttributeError:
                print (" ")

                data.append(
                    {
                    'text':text,
                    'topic': topic,
                    'tags':tags
                    }
                )

    pd.DataFrame(data).to_csv('text.csv', index = False, header=True)
    time.sleep(3)
我的代码似乎是正确的,但我运行了这段代码,它已经运行了好几天了。 我想了解这是一个阻碍进展的错误,还是过程很长

为了做到这一点,我想知道是否有可能在我的代码中添加一个“组件”,使我能够跟踪实时处理的URL数量


有什么想法吗?

按照现在编写代码的方式,您正在将所有数据累积到内存中,直到全部提取出来。在不太修改代码的情况下跟踪进度的最简单方法是只打印当前URL或正在处理的URL的编号

更好的方法是在解析CSV文件时将数据写入CSV文件,而不是在最后一次全部写入。差不多

打印(“文本、主题、标记”)
以open('url.txt','r')作为inf:
对于inf中的行:
url=row.strip()
response=requests.get(url,headers={'User-agent':'Mozilla/5.0'})
#正在获取所需的数据。。。
打印(f“{text},{topic},{tags}”)

如果使用此方法,请确保转义/删除逗号,或使用实际的CSV库生成行。

现在编写代码的方式是,将所有数据累积到内存中,直到全部获取为止。在不太修改代码的情况下跟踪进度的最简单方法是只打印当前URL或正在处理的URL的编号

更好的方法是在解析CSV文件时将数据写入CSV文件,而不是在最后一次全部写入。差不多

打印(“文本、主题、标记”)
以open('url.txt','r')作为inf:
对于inf中的行:
url=row.strip()
response=requests.get(url,headers={'User-agent':'Mozilla/5.0'})
#正在获取所需的数据。。。
打印(f“{text},{topic},{tags}”)
如果使用此方法,请确保转义/删除逗号,或使用实际的CSV库生成行