Как получить ссылки только из списка в Python3?[Начальный] - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть список на python3, который выглядит примерно так:

https://textuploader.com/15dra

Из этого файла я хочу создать новый список, который принимает только URL-адресаиз другого списка, разделенного запятыми и заключенного в двойные кавычки ("), и, если возможно, также отфильтруйте все URL, содержащие" 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)

1 Ответ

0 голосов
/ 18 февраля 2019

Вы могли бы сделать понимание списка.Я также включил бы эту строку:

tags = soup.find_all('a', href=True)

, так как вам нужны только теги с 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', 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 ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...