【发布时间】:2020-04-16 03:53:13
【问题描述】:
我正在尝试从(主)网站上抓取一些电影的链接,然后从这些链接中抓取内容。
在下面的代码中,我尝试只使用一个链接,但最终,我将为所有链接使用循环。
from urllib.request import urlopen
from bs4 import BeautifulSoup as soup
import csv
def make_soup(url):
# opening up connection, grabbing the page
source = urlopen(url).read()
# opening up connection, grabbing the page
page_soup = soup(source, "lxml")
return page_soup
soup = make_soup('https://letterboxd.com/top10ner/list/2020-edition-top10ners-1001-greatest-movies/')
#### code for grabbing the links
#### link = first_link
my_url = str(link)
new_soup = make_soup(my_url)
new_cont = new_soup.find('div', {'id':'content'})
我得到一个错误:
Traceback(最近一次调用最后一次): 文件“/Users/calinap/PycharmProjects/WebScraping/letterboxd_scrape.py”,第 34 行,在 new_cont = new_soup.find('div', {'id':'content'}) getattr 中的文件“/Users/calinap/PycharmProjects/WebScraping/venv/lib/python3.8/site-packages/bs4/element.py”,第 2127 行 引发属性错误( AttributeError:ResultSet 对象没有“find”属性。您可能将元素列表视为单个元素。当你打算调用 find() 时,你调用了 find_all() 吗?
【问题讨论】:
标签: python python-3.x web-scraping