#xml #web-scraping #beautifulsoup #casting
#xml #веб-очистка #beautifulsoup #Кастинг
Вопрос:
Я довольно новичок в веб-обработке, и я анализирую XML-файл с помощью Beautiful Soup 4. Я хочу использовать строковую форму URL-адресов, которые охватываются тегом link: < ссылка> https://www.whateveriwant.com <ссылка>.
Вот что я сделал до сих пор:
bs_content = bs(content, "lxml") # content is an entire XML file in one string
bsUrlsList = bs_content.find_all("link") # gets all urls, fills a list with bs4 tag objs
Проблема в том, что когда я перебираю bsUrlsList и печатаю каждый элемент, он печатает список [,] , в отличие от фактической строковой версии ссылки.
for link in bsUrlsList:
print(type(link)) # prints <class 'bs4.element.Tag'>
Большой вопрос: как мне преобразоватьТег’> в строку, чтобы я мог в конечном итоге получить список URL-адресов строк, которые я извлек из XML-файла?
Ответ №1:
goal = list(soup.select("link").strings)
Или
goal = [x.text for x in soup.findAll("link")]
Комментарии:
1. Спасибо за ответ. Это решение вернуло список пустых строк. Вот тестовый XML-файл, из которого я извлекаю ссылки: news.google.com/rss?hl=en-USamp;gl=USamp;ceid=US:en как я могу извлечь из этого строковую версию ссылки?