• 通过python3的多线程,获取猫眼电影top100电影清单,并保存信息到本地,使用了requests库和正则表达式
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: Aiker Zhao
# @Date  : 2019/4/2 2:52 AM
# @File  : pamaoyan.py
# @Desc  : 
import requests
from requests.exceptions import RequestException
import re
import json
from multiprocessing import Pool

def get_one_page(url):
    try:
        response = requests.get(url)
        if response.status_code == 200:
            return response.text
        return None
    except RequestException:
        return None

def parse_one_page(html):
    pattern = re.compile('
.*?board-index.*?>(\d+).*?data-src="(.*?)".*?name">(.*?).*?star">(.*?)

' + '.*?releasetime">(.*?)(.*?).*?fraction">(.*?).*?
', re.S) pattern1 = re.compile('board-index.*?>(\d+).*?data-src="(.*?)".*?name">(.*?).*?star">(.*?)

', re.S) items = re.findall(pattern, html) # print(items) for item in items: yield { 'index': item[0], 'score': item[5] + item[6], 'image': item[1], 'title': item[2], 'actor': item[3].strip()[3:], 'time': item[4][5:] } def write_to_file(content): with open('result.txt', 'a', encoding='utf-8') as f: f.write(json.dumps(content, ensure_ascii=False) + '\n') f.close() def main(offset): url = 'https://maoyan.com/board/4?offset=' + str(offset) html = get_one_page(url) # print(html) for item in parse_one_page(html): print(item) write_to_file(item) if __name__ == '__main__': # for i in range(10): # main(i*10) pool = Pool() pool.map(main, [i * 10 for i in range(10)])