我对使用python解析HTML标记有疑问。 我的代码如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from lxml import html
import requests
import urllib2
import sys
import re
import time
import urllib
import datetime
def get_web():
try:
input_sat = open('rtc.xml','w')
godina = datetime.date.today().strftime("%Y")
print godina
mjesec = datetime.date.today().strftime("%m")
print mjesec
for x in range (32):
if x < 1:
x = x + 1
var = x
url = 'http://www.rts.rs/page/tv/sr/broadcast/20/RTS+1.html?month={}&year={}&day={}&type=0'.format(mjesec, godina, var)
page = requests.get(url)
tree = html.fromstring(page.text)
a = tree.xpath('//div[@id="center"]/h1/text()') # datum
b = tree.xpath('//div[@class="ProgramTime"]/text()') # time
c = tree.xpath('//div[@class="ProgramName"]/text()')
e = tree.xpath('//div[@class="ProgramName"]/a[@class="recnik"]/text()')
for line in zip(a,b,c,e):
var = line[0]
print >> input_sat, line+'\n'
except:
pass
get_web()
脚本工作正常并从URL获取标记,但是如何将它们写入文件进行处理?
当我使用for
循环运行我的代码时,它不起作用。我不知道问题出在哪里。
我重写了我的代码,它不会将页面上的内容输出到文件中。
答案 0 :(得分:2)
据我了解,您的print()
功能不正确。您必须使用处理程序的write()
函数,并将文本编码为UTF-8:
for line in zip(a,b,c,e):
var = line[0]
input_sat.write(line[0].encode('utf-8') + '\n')
它产生:
Programska šema - sreda, 01. jan 2014