我在python3上有这样的列表:
https://textuploader.com/15dra
从这个文件中,我想创建一个新列表,该列表仅使用另一个列表中的网址,这些网址由逗号分隔并包含在双引号(“)中,并且如果可能的话,还过滤所有包含” i.redd.it“的网址
如果有帮助,请参见以下代码:
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)
答案 0 :(得分:0)
您可以进行列表理解。我还将包括以下行:
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'
但是,如果您需要这些URL,则可以摆脱if
语句,或者根据需要更改它:
hrefs = [ ele['href'] for ele in tags ]