如何只从Python3中的列表中检索链接? [初学者]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何只从Python3中的列表中检索链接? [初学者]相关的知识,希望对你有一定的参考价值。
我在python3上有这样的列表:
https://textuploader.com/15dra
从这个文件我想创建一个新的列表,只列出其他列表中的逗号分隔的逗号并包含在双引号(“)中,如果可能的话,还过滤所有包含”i.redd.it“的URL
这是代码,如果它有帮助:
from bs4 import BeautifulSoup
import requests
import re
import urllib.request
import urllib3
http = urllib3.PoolManager()
url = "https://reddit.com/r/me_irl"
response = http.request('GET', url)
soup = BeautifulSoup(response.data, "lxml")
tags = soup.find_all('a')
hrefs = []
for t in tags:
hrefs.append(t)
print(hrefs)
答案
你可以做一个列表理解。我还要包括这一行:
tags = soup.find_all('a', href=True)
因为你只想要带有网址的标签
from bs4 import BeautifulSoup
import requests
import re
import urllib.request
import urllib3
http = urllib3.PoolManager()
url = "https://reddit.com/r/me_irl"
response = http.request('GET', url)
soup = BeautifulSoup(response.data, "lxml")
tags = soup.find_all('a', href=True)
hrefs = [ ele['href'] for ele in tags if 'i.redd.it' in ele['href']]
但是,这将返回一个空列表,因为那里没有包含'i.redd.it'
的href
但是,如果你想要网址,你可以摆脱if
声明,或者如果你愿意,可以改变它:
hrefs = [ ele['href'] for ele in tags ]
以上是关于如何只从Python3中的列表中检索链接? [初学者]的主要内容,如果未能解决你的问题,请参考以下文章