Как очистить открытый текст от нескольких ссылок с одного сайта? - PullRequest
0 голосов
/ 08 октября 2018
from bs4 import BeautifulSoup
import bs4 as bs
import pandas as pd
import numpy as py
import json
import csv
import re
import urllib.request
sauce = 
urllib.request.urlopen("https://www.imdb.com/list/ls003073623/").read()
soup = bs.BeautifulSoup(sauce, 'html.parser')
soup.findAll('a', href=re.compile('^/title/'))

Я пытаюсь удалить несколько ссылок с веб-сайта (около 500), и я не хочу вручную вводить каждый URL-адрес, как мне удалить это?

1 Ответ

0 голосов
/ 08 октября 2018

С BeautifulSoup

Если я правильно понимаю, вы пытаетесь получить список, содержащий часть всех ссылок на данном веб-сайте.Существует пример в документации BeautifulSoup, который показывает, как именно это сделать:

from BeautifulSoup import BeautifulSoup
import urllib2
import re

html_page = urllib2.urlopen("https://www.imdb.com/list/ls003073623/")
soup = BeautifulSoup(html_page)
ids = []

for link in soup.findAll('a', attrs={'href': re.compile("^http://")}):
    ids.append(link.get('href').split("/")[4])

print(ids)

с Selenium

Для справки, и поскольку это не похоже навопрос ограничен только BeautifulSoup, вот как мы могли бы сделать то же самое, используя Selenium, очень популярную альтернативу.

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.imdb.com/list/ls003073623/")

ids = []
elems = driver.find_elements_by_xpath("//a[@href]")

for elem in elems:
    ids.append(elem.get_attribute("href").split("/")[4])

print(ids)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...