0

我正在尝试将列表中的项目写入多个文件。我想根据日期命名每个文件。请记住,我知道我不应该使用正则表达式来抓取 HTML,但目前它对我很有帮助。原谅我的无知,但我是初学者。此抓取仅用于学术目的。先感谢您。

    from urllib import urlopen
    import re

    webpage = urlopen('x').read()
    date = re.compile('[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}')
    article =  re.compile('<span>.*<div>', re.DOTALL)
    findDate = re.findall(patFinderDate,webpage)
    findArticle = re.findall(patFinderArticle,webpage)

    listIterator = []
    listIterator[:] = range(0,1000)

    for i in listIterator:
        filename = findDate[i]
        with open(filename,"w") as f:
            f.write(i)
            f.close()
4

1 回答 1

1

如果你确定你有和文章一样多的日期,你可以大致重写你的代码如下:

from urllib import urlopen
import re

webpage = urlopen('x').read()
date_p = re.compile('[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}')
article_p =  re.compile('<span>.*<div>', re.DOTALL)
allDates = re.findall(date_p,webpage)
allArticles = re.findall(article_p,webpage)

for date, article in zip(allDates, allArticles):
    with open(date,"w") as f:
        f.write(article)

zip()函数将两个可迭代对象“压缩”为一个,并在每次迭代时返回一个 2 元组 - 这就是您需要检查日期是否与文章一样多的原因

于 2012-09-19T18:31:30.920 回答