1#-- coding: utf-8 --
2from bs4 import BeautifulSoup
3import requests
4import pandas
5import time
6newarry = []
7user_agent = ‘*’
8headers = {‘User_Agent’: user_agent}
9for i in range(15):
10 gradeUrl = ‘https://movie.douban.com/celebrity/1274297/partners?start=‘+str(i*10)
11 res = requests.get(gradeUrl, headers)
12 soup = BeautifulSoup(res.content, ‘html.parser’).find(class_=’article’)
13 for item in soup.find_all(class_=’partners item’):
14 partner = item.select(‘a’)[1].text
15 times = item.select(‘li’)[1].text
16 collect_num = item.select(‘li’)[2].text
17 url_list = item.select(‘li’)[1]
18 for url in url_list.find_all(‘a’):
19 each_page = requests.get(url.get(‘href’), headers)
20 sub_res = BeautifulSoup(each_page.content, ‘html.parser’)
21 info = sub_res.find(id=’wrapper’)
22 movie_name = info.select(‘span[property=”v:itemreviewed”]’)[0].text
23 print(movie_name)
24 director = info.find(class_=’attrs’).select(‘a’)[0].text
25 types = ’ ‘.join([style.text for style in info.select(‘span[property=”v:genre”]’)])
26 if info.find(class_=’ll rating_num’) is None:
27 rate = 0
28 else:
29 rate = info.find(class_=’ll rating_num’).text
30 newarry.append({
31 ‘partner’: partner.split(” “)[0],
32 ‘time’: times[5],
33 ‘collect_num’: collect_num,
34 ‘movie_name’: movie_name,
35 ‘director’: director,
36 ‘types’: types,
37 ‘rating’: rate
38 })
39 time.sleep(2)
40 print(newarry)
41
42new_df = pandas.DataFrame(newarry, columns=[‘partner’, ‘time’, ‘collect_num’, ‘movie_name’, ‘director’, ‘types’, ‘rating’])
43new_df.to_excel(‘D:\partner.xlsx’)
44print(new_df)
我不是药神 python分析
最新推荐文章于 2024-04-27 11:45:00 发布