Python 解析两个不同的html源并组合输出

Python 解析两个不同的html源并组合输出,python,Python,我正在用两个不同的脚本解析两个不同的html源(一个吐出“数据A、B、C、D和E”,另一个吐出“数据F”)。我想将这两个脚本的输出合并成一个简单的csv格式 我试图运行第三个脚本,从其他两个脚本导入所有内容并打印数据。这就是我为实现这一目标所做的努力: #!usr/bin/env python from script1 import * from script2 import * for c in cities : c.retrieveTemps() print(c.name,c

我正在用两个不同的脚本解析两个不同的html源(一个吐出“数据A、B、C、D和E”,另一个吐出“数据F”)。我想将这两个脚本的输出合并成一个简单的csv格式

我试图运行第三个脚本,从其他两个脚本导入所有内容并打印数据。这就是我为实现这一目标所做的努力:

#!usr/bin/env python

from script1 import *
from script2 import *

for c in cities :
   c.retrieveTemps()
   print(c.name,c.high0,c.low0,c.high1,c.low1,c.weather0,c.weather1,c.wind0,c.wind1)
所有变量都在script1和script2中定义。Script1查找除c.wind1之外的所有变量。但是,当我运行上面的代码时,它将只查找script1或script2的数据(取决于我第二次导入的数据),而不是两者

我能做些什么让它打印出script1和script2中的所有数据?谢谢

编辑

这来自脚本1:

#!usr/bin/env python

import re
import urllib
from datetime import datetime
from datetime import timedelta

date = datetime.now()
date1 = date + timedelta(days=1)
date2 = date + timedelta(days=2)


class city :
        def __init__(self, city_name, link) :
                self.name = city_name
                self.url = link
                self.wind1 = 0

    def retrieveTemps(self) :
            filehandle = urllib.urlopen(self.url)

            # get lines from result into array
            lines = filehandle.readlines()

            # (for each) loop through each line in lines
            line_number = 0 # a counter for line number
            for line in lines:
                    line_number = line_number + 1 # increment counter

                    # find string, position otherwise position is -1

                    position2 = line.rfind('<ul class="stats">')

                    #String is found in line

                    if position2 > 0 :
                            self.wind0 = lines[line_number + 1].split('</strong>')[0].split('style="">')[-1]

                            break # done with loop, break out of it

            return ('c.wind0')

            filehandle.close()

m1 = city('Mexico City', 'http://www.accuweather.com/en/mx/mexico-city/242560/daily-weather-forecast/242560?day=2')
m3 = city('Veracruz', 'http://www.accuweather.com/en/mx/veracruz/236233/daily-weather-forecast/236233?day=2')
m5 = city('Tampico', 'http://www.accuweather.com/en/mx/tampico/235985/daily-weather-forecast/235985?day=2')
m7 = city('Nuevo Laredo', 'http://www.accuweather.com/en/mx/nuevo-laredo/235983/daily-weather-forecast/235983?day=2')
m9 = city('Monterrey', 'http://www.accuweather.com/en/mx/monterrey/244681/daily-weather-forecast/244681?day=2')
m11 = city('S. Luis Potosi', 'http://www.accuweather.com/en/mx/san-luis-potosi/245369/daily-weather-forecast/245369?day=2')
m13 = city('Queretaro', 'http://www.accuweather.com/en/mx/queretaro/245027/daily-weather-forecast/245027?day=2')
m15 = city('Laz. Cardenas', 'http://www.accuweather.com/en/mx/lazaro-cardenas/239054/daily-weather-forecast/239054?day=2')

cities = []
cities.append(m1)
cities.append(m3)
cities.append(m5)
cities.append(m7)
cities.append(m9)
cities.append(m11)
cities.append(m13))
cities.append(m15)
#!usr/bin/env python
进口稀土
导入URL库
从日期时间导入日期时间
从日期时间导入时间增量
date=datetime.now()
date1=日期+时间增量(天数=1)
date2=日期+时间增量(天数=2)
级别城市:
定义初始化(自我、城市名称、链接):
self.name=城市名称
self.url=link
self.wind1=0
def retrieveTemps(自我):
filehandle=urllib.urlopen(self.url)
#将结果中的行获取到数组中
lines=filehandle.readlines()
#(对于每个)在每行中循环通过每行
行号=0#行号计数器
对于行中的行:
行号=行号+1增量计数器
#查找字符串,否则位置为-1
位置2=line.rfind('
    ')) #在第行中找到字符串 如果位置2>0: self.wind0=行[line_number+1]。拆分(“”)[0]。拆分('style=”“>”)[-1] 中断#完成循环,中断循环 返回('c.wind0') filehandle.close() m1=城市(‘墨西哥城’,’http://www.accuweather.com/en/mx/mexico-city/242560/daily-weather-forecast/242560?day=2') m3=城市(‘韦拉克鲁斯’,’http://www.accuweather.com/en/mx/veracruz/236233/daily-weather-forecast/236233?day=2') m5=城市(‘坦皮科’,'http://www.accuweather.com/en/mx/tampico/235985/daily-weather-forecast/235985?day=2') m7=城市(‘新拉雷多’,'http://www.accuweather.com/en/mx/nuevo-laredo/235983/daily-weather-forecast/235983?day=2') m9=城市(‘蒙特雷’,’http://www.accuweather.com/en/mx/monterrey/244681/daily-weather-forecast/244681?day=2') m11=城市('S.Luis Potosi','http://www.accuweather.com/en/mx/san-luis-potosi/245369/daily-weather-forecast/245369?day=2') m13=城市('Queretaro','http://www.accuweather.com/en/mx/queretaro/245027/daily-weather-forecast/245027?day=2') m15=城市('Laz.Cardenas','http://www.accuweather.com/en/mx/lazaro-cardenas/239054/daily-weather-forecast/239054?day=2') 城市=[] 城市。追加(m1) 城市(m3) 城市。附加(m5) 城市。附加(m7) 城市。附加(m9) 城市。附加(m11) 城市.附加(m13)) 城市。附加(m15)
不要这样做。导入模块的命名空间是错误的方法。这两个Python脚本不会“吐出”数据。编写方法、导入方法、调用方法、使用结果

script1.py

def foo():
    return (1, 2, 3)
def bar():
    return ('a', 'b', 'c')
from script1 import foo
from script2 import bar

combinedResult = foo() + bar()
script2.py

def foo():
    return (1, 2, 3)
def bar():
    return ('a', 'b', 'c')
from script1 import foo
from script2 import bar

combinedResult = foo() + bar()
script3.py

def foo():
    return (1, 2, 3)
def bar():
    return ('a', 'b', 'c')
from script1 import foo
from script2 import bar

combinedResult = foo() + bar()

这是有道理的,尽管我不确定我写的方法是否正确。我已经编辑了原始文章,将script1.py的一部分包括在内,并尝试编写了一个方法。我尝试导入retrieveTemps,但它说它无法导入它。“它说它无法导入它”。错误消息是什么?文件“scriptkcsm.py”,第4行,来自kcsm2 import retrieveTemps ImportError:无法导入名称retrieveTemps现在,我已将所有脚本1包含在原始帖子中,因此您可以确切地看到它是如何设置的。这给了你更好的想法吗?
retrieveTemps
city
的成员吗?然后您必须从script1导入城市导入并使用它作为
;c=城市();c、 retrieveTemps()
。尝试时,我收到以下错误:来自kcsm导入城市;c=城市();c、 retrieveTemps()TypeError:_init__;()正好接受3个参数(给定1个)