爬演员名字加链接

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("所有信息爬取完成!")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值