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