爬虫百战穿山甲(五)pandas请求出战

网友投稿 665 2022-05-29

情绪萎靡不振,并不想说话,咱直接看代码吧。

import requests from fake_useragent import UserAgent import pandas as pd #import requests_cache import json # https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=20 def get_url_json(url): ''' 使用requests.get方法 获取url中的json数据 :parameter url:网址https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=20 :returns 列表,包含电影数据 ''' res = requests.get(url, headers={'User-Agent': UserAgent().random}) if res.status_code == 200: return res.json()['data'] return [] import time def from_douban_to_jsonl(file_name): ''' 调用get_url_json方法获取数据,并且将数据存储到jsonl文件中 :parameter file_name:将要存储的文件名 ''' for i in range(0,200,20): url = 'http://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start='+str(i) print(url) movies = get_url_json(url) time.sleep(2) with open(file_name,'a+') as db: for movie in movies: db.write(json.dumps(movie)) db.write('\n') def manage_data(file_name): ''' 将数据从文件中读取,并对数据进行一波处理 :param file_name: 将要读取的文件名 :return: ''' df = pd.read_json(file_name,lines=True) # 读取jsonl文件 df.drop_duplicates(subset='id') # 数据去重 df = df.set_index('id') # 设置索引列,返回一个新的对象 df = df[['casts','cover','directors','rate','star','title','url']] # 选择要保存的列 # 使用apply方法按列处理演员和导演数据 df['main_cast'] = df['casts'].apply(lambda x:x[0] if len(x)>0 else '') df['director'] = df['directors'].apply(lambda x:x[0] if len(x)>0 else '') # 去掉列表中的‘[]’,转化为字符串 df['casts'] = df['casts'].apply(lambda x:','.join(x)) df['directors'] = df['casts'].apply(lambda x:','.join(x)) from_douban_to_jsonl('doubanmovie.jsonl') manage_data('doubanmovie.jsonl')

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

爬虫百战穿山甲(五)pandas请求出战

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

学到了啥,我觉得除了基本知识以外,最重要的一点就是代码文档吧。

以前从来没有写过这样的文档。

其他

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:HTML5常用标签(2-2) body标签内部标签
下一篇:OpenCV简介与安装
相关文章