豆瓣爬虫小记(lowB版)

爬虫小记

看了python正则知识之后,可以利用正则知识学学网络爬虫。

需求分析

按照自己平时浏览的网页,留意下哪个网页的信息对自己有价值,分析要爬取哪些网页信息。这里我先爬取简单的静态网页,豆瓣网经典电影排名及详细信息。

爬取目标信息:排名,电影名,导演,评分,评价人数

具体步骤

  • 设计下载html网页的函数

  • 设计正则规则

  • 存储爬取信息

!/usr/bin/env python

coding:utf8

import requests
import re
import json

def download():
response = requests.get(url.format(page=p25))
res = response.text
return res
def spider_dpuban():
get_html = download()
obj = re.compile('

.?(?P.?).?(?P.<em>?)</span>'<br> '.</em>?<p class="">.<em>?导演:(?P<director>.</em>?)&nbsp.<em>?</p>.</em>?<span class="rating_num".<em>?>(?P<num>.</em>?)</span>.<em>?<span>(?P<comment>.</em>?)人评价</span>',<br> re.S)<br> res = obj.finditer(get_html)<br> title = ('排名','电影名','导演','评分','评价人')<br> with open('douban', 'a', encoding='utf-8') as f:<br> for i in res:<br> dic = dict(zip(title, i.group('id', 'title', 'director', 'num', 'comment')))<br> wr = json.dumps(dic,ensure_ascii=False)<br> f.write(wr + '\n')</p> <p>url = '<a href="https://movie.douban.com/top250?start=%7Bpage%7D&filter=" target="_blank">https://movie.douban.com/top250?start={page}&filter=</a>'<br> for p in range(10):<br> spider_dpuban()<br> with open('douban', 'r', encoding='utf-8') as f:<br> for i in f:<br> i = json.loads(i)<br> print(i)</p> <h3 id="心得">心得</h3> <p>回头来看,这个程序还是比较挫,扩展性不好,结构也一般。不过最终看到结果也还是挺兴奋,只有等以后有时间慢慢完善了。先记录下来吧。</p> <p><img src="http://i.imgur.com/Ys0dM0F.png" alt="" loading="lazy"></p>
posted @ 2017-07-01 12:11  村口王铁匠  阅读(390)  评论(0)    收藏  举报