如何从一个网站上的多个链接中抓取明文?


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,我该如何抓取这个?

配美汤

如果我理解正确,您正在尝试获取一个列表,其中包含给定网站上所有链接的一部分。在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)

含硒

作为参考,由于问题似乎不仅限于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)

最新更新