import re
import requests
import json
import pandas
import os
import sys
from bs4 import BeautifulSoup
#获取请求
def getHTMLText(url,kv):
try:
r = requests.get(url, headers=kv)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except Exception as e:
print(e)
#解析出演员姓名与链接数据并存入文件
def parserData(text):
soup = BeautifulSoup(text,'lxml')
review_list = soup.find_all('li',{'class':'pages'})
soup1 = BeautifulSoup(str(review_list),'lxml')
all_dts = soup1.find_all('dt')
stars = []
i=0
for dt in all_dts:
star = {}
try:
print(dt.find('a').text)
star["name"] = dt.find('a').text
star["link"] = 'https://baike.baidu.com' + dt.find('a').get('href')
stars.append(star)
except Exception as e:
continue
i+=1
print(i)
json_data = json.loads(str(stars).replace("\'","\""))
with open('zhifou.json','w',encoding='UTF-8') as f:
json.dump(json_data,f,ensure_ascii=False)
if __name__ == '__main__':
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
url = 'https://baike.baidu.com/item/%E7%9F%A5%E5%90%A6%E7%9F%A5%E5%90%A6%E5%BA%94%E6%98%AF%E7%BB%BF%E8%82%A5%E7%BA%A2%E7%98%A6/20485668?fr=aladdin'
text=getHTMLText(url, headers)
parserData(text)
print("所有信息爬取完成!")
爬演员名字加链接
最新推荐文章于 2025-12-31 23:52:26 发布
该博客展示了一个Python爬虫程序,用于从百度百科抓取指定页面(知乎不知道是不是红衣的条目)上的演员姓名和链接。程序首先定义了获取HTML文本的函数,然后解析HTML以提取演员信息,并将结果保存到'zhifou.json'文件中。最后,程序打印出所有信息爬取完成。
1069

被折叠的 条评论
为什么被折叠?



