正则使用抓取数据

1. 获取网页,使用requests三方库

    """获取网页"""
    headers = {
        "User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)"
    }
    url = 'http://maoyan.com/board/4?offset=' + str(offset)
    response = requests.get(url, headers=headers)

说明:response可以使用两种方法获取网页(text,content)

text:拿到网页的文本,如果乱码,不能进行其它处理
content:拿到网页的二进制,后面可是使用decode('utf-8')进行解码.例:response.content.decode('utf-8')

2. 使用正则解析获得的html

pattern = re.compile('movieId.*?>.*?<img.*?<img.*?alt="(.*?)" class.*?', re.S)
# re.S代表忽略空格  str.strip()去除字符串两边的空格,换行符等(内部参数没有时,去除空格等)
movie_names = re.findall(pattern, html)  # 拿到的是一个集合

pattern = re.compile('<p class="score"><i class="integer">(.*?)</i><i class="fraction">(.*?)</i></p>', re.S)
movie_scores = re.findall(pattern, html)

pattern = re.compile('<div class="movie-item-info">.*?<p class="name"><a href="(.*?)"', re.S)
details = re.findall(pattern, html)

3. 图片下载

思路:获取到图片的链接img_url,使用requests.get(img_url),然后获取到二进制.最后写入文件
实现:

    response = requests.get(img_url)
    result = response.content
    filename = img_url.split('/')[-1].split('@')[0]
    with open(f'./maoyan_cover/{filename}', 'wb') as f:
        f.write(result)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • request:Requests 继承了urllib的所有特性。Requests支持HTTP连接保持和连接池,支持...
    Alice丨殇阅读 323评论 0 0
  • 上一篇:8.Urllib库基本使用下一篇:10.正则表达式基础 requests是python实现的最简单易用的H...
    在努力中阅读 3,431评论 2 11
  • 网络 理论模型,分为七层物理层数据链路层传输层会话层表示层应用层 实际应用,分为四层链路层网络层传输层应用层 IP...
    FlyingLittlePG阅读 856评论 0 0
  • 爬虫的基本流程 一、发送HTTP请求(Request)通过Python库向目标站点发送HTTP请求,等待服务器响应...
    晓枫_0544阅读 801评论 0 0
  • 好友最近被家里人安排相亲,向我倾诉:这个相亲对象呢, 家里条件不错,可我就是感觉和他没话聊啊?哎,还有一个呢, 条...
    M曼君阅读 1,584评论 6 1