利用爬虫获取猫眼电影热门前100数据

利用爬虫获取猫眼电影热门前100数据

实现方法 1:访问网站,获取页面源码
2:解析页面 ,得到想要的数据
3:循环爬取多个页面
4:把数据写入本地文件
'''
需求:爬取猫眼电影前100的电影信息
实现方法:访问网站,获取页面源码
        解析页面,得到想要的数据
        循环爬取多个页面
        把数据写入本地文件
'''
import requests
from requests.exceptions import RequestException
import re
import json
import vthread
#定义获取单页响应函数
def get_one_page(url):
    try:
        headers = {'User-Agent':'Mozilla/5.0'}
        response = requests.get(url,headers = headers)
        # 判断是否正常访问
        if response.status_code == 200:
            return response.text
        return None
    except RequestException:
        return None
#定义单页正则表达式函数
def regular_one_page(html, regular_method=re.compile(
    '
.*?board-index.*?>(\d+).*?data-src="(.*?)".*?name">(.*?).*?star">(.*?)

.*?releasetime">(.*?)

.*?integer">(.*?).*?fraction">(.*?)', re.S)): istr = re.findall(regular_method,html) # print(istr) for istr1 in istr: yield{ 'index': istr1[0], 'title': istr1[2], 'pic':istr1[1], 'star':istr1[3].strip()[3:],#strip 分割字符 'itime':istr1[4], 'score':istr1[5]+istr1[6] } #定义写入文件函数 def write_to_file(content): with open('MaoYanTop100.txt','a',encoding='utf-8') as f: f.write(json.dumps(content,ensure_ascii=False)+'\n')#将字典数据写入 encoding与ensure_ascii=False中文 f.close() #主函数 def main(offset): url = 'https://maoyan.com/board/4?offset=' + str(offset) # print(url) html = get_one_page(url) regular_one_page(html) for istr1 in regular_one_page(html): print(istr1) write_to_file(istr1) if __name__ == '__main__': for i in range(10): main(i*10)

你可能感兴趣的:(python)