抓取猫眼电影排行下

紧跟前文,我们将继续学习抓取猫眼电影排行

offset表示偏移量,如果偏移量为n,则显示的电影序号就是n+1到n+10. 

一、写入文件

我们将提取的结果,这里直接写入到一个文本文件中。这里通过JSON库的dumps()方法实现字典的序列化,并指定ensure__ascii参数为False,这样可以保证输出结果是中文形式而不是Unicode编码。代码如下:

def write_to_file(content):
    with open('result.txt','a',encoding='utf-8') as f:
        print(type(json.dumps(content)))
        f.write(json.dumps(content, ensure_ascii=False)+'\n')

通过调用write_to_file()方法即可实现字典写入到文本文件的过程,此处的content参数就是一部电影的提取结果,是一个字典。

二、整合代码

最后,实现main()方法来调用前面实现的方法,将单页的结果写入文件。相关代码如下:

def main():
    url='http://maoyan.com/board/4'
    html=get_one_page(url)
    for item in parse_one_page(html):
        write_to_file(item)def main():
    url='http://maoyan.com/board/4'
    html=get_one_page(url)
    for item in parse_one_page(html):
        write_to_file(item)

到此为止,我们就完成了单页电影的提取,也就是首页的10部电影可以成功提取并保存到文本文件中了。

因为我们需要抓取的是TOP100的电影,所以还需要遍历一下,给这个链接传入offset参数,实现其他90不电影的爬取:

if _name_=='_main_':
    for i in range(10):
        main(offset =i*10)

这里还需要将main()方法修改一下,接收一个offset值作为偏移量,然后构造URL进行爬取。