json.loads(参数为json格式的字符串)
把json格式的字符串转为python数据类型
html = json.loads(res.text)
json.dump(python,file,ensure_ascii=False)
把python数据类型转为json格式的字符串并存入文件
第一个参数:python类型的数据(字典,列表)
第二个参数:文件对象
第三个参数:ensure_ascii=False序列化时编码
json.dumps(python数据类型)
把python数据类型转为json格式的字符串
json.load(json格式的字符串)
将json文件读取,并转为python类型
数据爬取-爬虫最常用
将响应内容由json转为python
json.loads(html)
数据保存-爬虫最常用
将爬取的数据保存到本地json文件
json.dump(item_list,f,ensure_ascii=False)
import json,requests,time,random
from fake_useragent import UserAgent
class doubanspider:
def __init__(self):
self.url = 'https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start={}&limit=20'
def get_agent(self):
return UserAgent().random
def get_html(self,url):
html = requests.get(url=url,headers={'User-Agent':self.get_agent()}).text
return html
def parse_html(self,url):
html = json.loads(self.get_html(url=url))
item = {}
for one_file in html:
item['name'] = one_file['title']
item['score'] = one_file['score']
item['rank'] = one_file['rank']
item['time'] = one_file['release_date']
print(item)
def run(self):
total = self.get_total()
for start in range(0,total,20):
url = self.url .format(start)
self.parse_html(url=url)
time.sleep(random.randint(1,2))
def get_total(self):
page_url = 'https://movie.douban.com/j/chart/top_list_count?type=11&interval_id=100%A90'
html = json.loads(self.get_html(url=page_url))
return html['total']
if __name__ == '__main__':
spider = doubanspider()
spider.run()