如何加上「;https://www.example.com/" 之前在Python中刮取的URL不';我还没有

如何加上「;https://www.example.com/" 之前在Python中刮取的URL不';我还没有,python,for-loop,web-scraping,uri,Python,For Loop,Web Scraping,Uri,我是一个使用Python的新手,我试图从一个网站上抓取一个URL列表,并将它们发送到一个.CSV文件,但我一直得到一堆URL,它们只是部分URL。它们在URL的其余部分之前没有“”。我发现我需要在我的代码中添加类似“['{0}”.if link.startswith('/')else link for link in url_list]”的内容,但是我应该在哪里添加它呢?这就是我应该补充的吗?谢谢你的帮助!这是我的密码: url_list=soup.find_all('a') with open

我是一个使用Python的新手,我试图从一个网站上抓取一个URL列表,并将它们发送到一个.CSV文件,但我一直得到一堆URL,它们只是部分URL。它们在URL的其余部分之前没有“”。我发现我需要在我的代码中添加类似“['{0}”.if link.startswith('/')else link for link in url_list]”的内容,但是我应该在哪里添加它呢?这就是我应该补充的吗?谢谢你的帮助!这是我的密码:

url_list=soup.find_all('a')
with open('HTMLList.csv','w',newline="") as f:
    writer=csv.writer(f,delimiter=' ',lineterminator='\r')
    for link in url_list:
        url=link.get('href')
        if url:
            writer.writerow([url])
f.close()

如果您注意到任何其他需要更改的内容,请告诉我。谢谢大家!

一个简单的
if
语句就可以实现这一点。只需检查是否存在
https://www.example.com
在URL中,如果不存在,则将其连接起来

url_list=soup.find_all('a')
with open('HTMLList.csv','w',newline="") as f:
    writer=csv.writer(f,delimiter=' ',lineterminator='\r')
    for link in url_list:
        url=link.get('href')
        # updated
        if url != '#' and url is not None:
            # added
            if 'https://www.example.com' not in url:
                url = 'https://www.example.com' + url
            writer.writerow([url])
f.close()

你查错了地方,这是OP的问题。您应该验证
link
变量,而不是
url
@Thomas如果输出是CSV中的所有url都必须完整,那么您在哪里进行验证无关紧要。@Franco这给了我一个错误。“TypeError:type'NoneType'的参数不可编辑。@Thomas更新了答案以满足存在空的
链接的需要。get('href')
@Thomas听起来像你的
链接。get('href')
类型不是
字符串
。你可以用这种方式转换它
url=str(link.get('href')