Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python获取包含.ics文件的HTML href属性的URL?_Python_Html - Fatal编程技术网

如何使用Python获取包含.ics文件的HTML href属性的URL?

如何使用Python获取包含.ics文件的HTML href属性的URL?,python,html,Python,Html,我试图从包含.ics日历的网页中获取.ics文件的URL。例如,但它应该适用于任何包含.ics的网页。 下面是我天真的尝试(没有打印任何内容,我也不知道为什么): 我做错了什么,还有什么更好的方法来获取我正在查找的.ics文件的URL?代码中的中断将在一次迭代后停止脚本,您需要再次缩进脚本,将其放入if(或者使用return)。当前,无论的结果如何,如果无效,它都将为中断 还有第二个问题,即有元素没有href属性,这将导致脚本在到达任何链接之前失败。ics链接: if link.get('hre

我试图从包含
.ics
日历的网页中获取
.ics
文件的URL。例如,但它应该适用于任何包含
.ics
的网页。 下面是我天真的尝试(没有打印任何内容,我也不知道为什么):


我做错了什么,还有什么更好的方法来获取我正在查找的
.ics
文件的URL?

代码中的
中断将在一次迭代后停止脚本,您需要再次缩进脚本,将其放入
if
(或者使用
return
)。当前,无论<代码>的结果如何,如果<代码>无效,它都将为<代码>中断<代码>

还有第二个问题,即有
元素没有
href
属性,这将导致脚本在到达任何链接之前失败。ics链接:

if link.get('href')[-4:]=='.ics':
TypeError: 'NoneType' object has no attribute '__getitem__'
例如:

<a name="main-content"></a>
<a class="cal-export" title="Note: Past events are not included">Export</a>

谢谢你给我一个很好的,简洁的回答。
<a name="main-content"></a>
<a class="cal-export" title="Note: Past events are not included">Export</a>
import urllib2
import requests
import bs4

def get_ics_url(url):
    page = requests.get(url).content
    soup = bs4.BeautifulSoup(page, 'lxml')

    links = soup.find_all('a')

    for link in links:
        if link.get('href') != None and link.get('href')[-4:]=='.ics':
            endout = link.get('href')
            return endout

print get_ics_url('https://meded.hms.harvard.edu/calendar')