我正在尝试自动执行一项任务,该任务大约每月进行一次,即向一个页面添加一个超链接,该页面如下所示:
2013: Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2012: Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2011: Jan Feb Mar ...
每当我们收到当月的新文档时,我们都会添加
^{pr2}$周围有标签。在
所以我在Python中使用beauthoulsoup。您可以在下面看到,我正在挑选包含此数据的HTML“p”标记,并对它找到的第一个月执行replace()(使用我创建的反向字典查找月份,replace()的第三个参数指示只执行它找到的第一个月)。在
# Modify link in hr.php:
hrphp = open('\\\\intranet\\websites\\infonet\\hr\\hr.php', 'r').read()
soup = BeautifulSoup(hrphp) # Parsing with BeautifulSoup
Months = {k: v for k,v in enumerate(calendar.month_abbr)} # Creates a reverse dictionary for month abbreviation lookup by month number, ie. "print Months[07]" will print "Jul"
print hrphp+"\n\n\n\n\n" # DEBUGGING: Compare output before
hrphp = hrphp.replace(
str(soup.findAll('p')[4]),
str(soup.findAll('p')[4]).replace(
Months[int(InterlinkDate[1][-5:-3])],
"<a href=\""+FilenameNewsletter+"\">"+Months[int(InterlinkDate[1][-5:-3])]+"</a>",
1),
1
)
print hrphp # DEBUGGING: Compare output after
看看它是如何嵌套的replace()?这个逻辑似乎运行得很好,但由于某些原因,它实际上并没有改变值。在脚本的前面,我对Months[]字典和结构更换()在页面的某一段上执行,虽然它没有像这样的嵌套replace(),也没有使用芬德尔汤(). 在
我开始把头撞到桌子上,任何帮助都将不胜感激。提前谢谢。在
最后使用代码
str(soup.findAll('p')[4]).replace
只是替换在soup.findAll('p')[4]
中结果的字符串表示中找到的值,这很可能与hrphp
中的字符串不同,因为{a1}在解析后。在美丽汤的文档提供了答案。看看Changing Attribute Values section。在
相关问题 更多 >
编程相关推荐