抓取猫眼电影排行下
紧跟前文,我们将继续学习抓取猫眼电影排行
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进行爬取。