再次使用Python从包含URL的.txt文件下载数据

时间:2017-02-23 13:12:56

标签: python curl pycharm dump lynx

我目前正在尝试从10个网址的.txt文件中提取原始数据,并将每行(URL)中的原始数据放入.txt文件中。然后使用Python重复处理数据(来自同一个原始.txt文件的原始数据,除去html)。

import commands
import os
import json

# RAW DATA
input = open('uri.txt', 'r')
t_1 = open('command', 'w')
counter_1 = 0

for line in input:
    counter_1 += 1
if counter_1 < 11:
    filename = str(counter_1)
    print str(line)
filename= str(count)
command ='curl ' + '"' + str(line).rstrip('\n') + '"'+ '> ./rawData/' + filename

output_1 = commands.getoutput(command)
input.close()

# PROCESSED DATA
counter_2 = 0
input = open('uri.txt','r')
t_2 = open('command','w')
for line in input:
    counter_2 += 1
    if counter_2 <11:
      filename = str(counter_2) + '-processed'
      command = 'lynx -dump -force_html ' + '"'+ str(line).rstrip('\n') + '"'+'> ./processedData/' + filename
    print command
output_2 = commands.getoutput(command)
input.close()

我试图用一个脚本完成所有这些操作。任何人都可以帮我改进我的代码,以便我可以运行它吗?对于.txt文件中的每一行,它应该完全遍历代码一次。例如,我应该有1个原始&amp;我的.txt文件中每个网址行都有1个已处理的.txt文件。

1 个答案:

答案 0 :(得分:0)

将代码分解为函数。目前,代码很难阅读和调试。创建一个名为get_raw()的函数和一个名为get_processed()的函数。那么对于你的主循环,你可以做

for line in file:
    get_raw(line)
    get_processed(line)

或类似的东西。你也应该避免使用魔法数字&#39;比如counter<11。为什么是11?它是文件中的行数吗?如果是,您可以使用len()获得行数。