使用 Python 的 requests 和 BeautifulSoup 库进行操作,怎么爬取一个网页某个div 的class里的所有链接?
假设我要http://maoyan.com/board/4猫眼电影的top100电影的相关信息,如下截图:
获取电影的标题及url。
我可以根据参考资料中的代码,结合问题中给出的具体信息来解决问题。假设要爬取的网页URL为'https://example.com',要抓取的div元素的class为'link-div',需要抓取所有链接的绝对链接。
import requests
from bs4 import BeautifulSoup
get_links()
,用来获取所有链接def get_links(url):
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
divs = soup.find_all('div', {'class': 'link-div'})
links = []
for div in divs:
for a in div.find_all('a'):
link = a.get('href')
if link.startswith('http'):
links.append(link)
else:
links.append(url+link)
return links
这个函数首先发送GET请求获取网页内容,然后使用BeautifulSoup解析网页内容。接着查找所有class为'link-div'的div元素,再在这些div元素中查找所有a标签,最后将a标签中href属性开头为'http'的绝对链接和其他相对链接拼接成绝对链接后存储到列表中。
get_links()
函数获取所有链接all_links = get_links('https://example.com')
这样就可以获取到所有链接了,可以进一步处理或者直接输出。
如果要进一步提取链接对应的页面内容,可以在for
循环中使用requests.get()
请求链接并用BeautifulSoup解析内容,然后进行相应的数据抓取和处理。