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

举报
看,未来 发表于 2020/12/29 23:27:54 2020/12/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=...

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

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
  • 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

学到了啥,我觉得除了基本知识以外,最重要的一点就是代码文档吧。
以前从来没有写过这样的文档。

文章来源: lion-wu.blog.csdn.net,作者:看,未来,版权归原作者所有,如需转载,请联系作者。

原文链接:lion-wu.blog.csdn.net/article/details/111798836

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。