爬虫实例——主要使用re和requests模块

import os
import re
import requests

def get_urls(url, regex):
    urls = []
    base_url = ‘http://desk.zol.com.cn‘
    content = requests.get(url).content
    area = re.search(regex, content, re.S).group(0)
    tails = re.findall(r‘href="(.*?)"‘, area)
    for tail in tails:
        urls.append(base_url + tail)
    return urls

def download_picture(url, count):
    target_dir = ‘pic‘
    if os.path.exists(target_dir):
        if not os.path.isdir(target_dir):
            os.remove(target_dir)
    else:
        os.mkdir(target_dir)
    content = requests.get(url).content
    picture_url = re.search(r‘<img id="bigImg" src="(.*?)"‘, content).group(1)
    picture = requests.get(picture_url).content
    suffix = re.sub(r‘.*\.‘, ‘.‘, picture_url)
    with open(‘pic/‘ + str(count) + suffix, ‘wb‘) as f:
        f.write(picture)

def spider(url, count):
    regex1 = r‘<ul class="pic-list2  clearfix">.*?</ul>‘
    regex2 = r‘<ul id="showImg".*?</ul>‘
    urls = get_urls(url, regex1)
    for each_url in urls:
        picture_urls = get_urls(each_url, regex2)
        for each_picture_url in picture_urls:
            download_picture(each_picture_url, count)
            print ‘Downloading picture ‘ + str(count)
            count += 1
    return count

def get_next_page_url(url):
    base_url = ‘http://desk.zol.com.cn‘
    content = requests.get(url).content
    tail = re.search(r‘<a id="pageNext" href="(.*?)"‘, content).group(1)
    return base_url + tail

if __name__ == ‘__main__‘:
    url = ‘http://desk.zol.com.cn/meinv/‘
    count = 1
    count = spider(url, count)
    while True:
        key = raw_input(‘Input y/Y to continue download next page, or input other words to exit.‘)
        if re.match(r‘Y‘, key, re.I):
            url = get_next_page_url(url)
            count = spider(url, count)
        else:
            exit()
时间: 2024-12-11 05:18:35

爬虫实例——主要使用re和requests模块的相关文章

爬虫原理与数据抓取----- Requests模块

Requests: 让 HTTP 服务人类 虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 "HTTP for Humans",说明使用更简洁方便. Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用:) Requests 继承了urllib2的所有特性.Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持

requests模块的入门使用

学习目标: 了解 requests模块的介绍 掌握 requests的基本使用 掌握 response常见的属性 掌握 requests.text和content的区别 掌握 解决网页的解码问题 掌握 requests模块发送带headers的请求 掌握 requests模块发送带参数的get请求 1 为什么要重点学习requests模块,而不是urllib requests的底层实现就是urllib requests在python2 和python3中通用,方法完全一样 requests简单易

python3 爬虫之requests模块使用总结

Requests 是第三方模块,如果要使用的话需要导入.Requests也可以说是urllib模块的升级版,使用上更方便. 这是使用urllib的例子. import urllib.request import json url = 'http://www.weather.com.cn/data/sk/101190408.html' res = urllib.request.urlopen(url)#发送请求 result = res.read().decode()#获取结果,结果是byte类型

Python学习---爬虫学习[requests模块]180411

模块安装 安装requests模块 pip3 install requests 安装beautifulsoup4模块 [更多参考]https://blog.csdn.net/sunhuaqiang1/article/details/65936616 pip install beautifulsoup4 初识requests模块   [更多参考]http://www.cnblogs.com/wupeiqi/articles/6283017.html requests.post(url=""

re模块,分组在re模块中的使用,使用正则表达式的技巧,爬虫实例

#re模块 import re # findall 返回列表 找所有的匹配项 # search 匹配就 返回一个变量,通过group取匹配到的第一个值,不匹配就返回None,group会报错 # match 相当于search的正则表达式中加了一个'^' # spilt 返回列表,按照正则规则切割,默认匹配到的内容会被切掉 # sub/subn 替换,按照正则规则去寻找要被替换掉的内容,subn返回元组,第二个值是替换的次数 # compile 编译一个正则表达式,用这个结果去search ma

爬虫之requests模块

引入 在学习爬虫之前可以先大致的了解一下HTTP协议~ HTTP协议:https://www.cnblogs.com/peng104/p/9846613.html 爬虫的基本流程 简介 简介:Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比urllib更加方便,可以节约我们大量的工作.一句话,requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库.默认安装好pyth

04,Python网络爬虫之requests模块(1)

Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档症.抑郁.头疼.甚至死亡. 今日概要 基于requests的get请求 基于requests模块的post请求 基于requests模块ajax的get请求 基于requests模块ajax的post请求 综合项目练习:爬取国家药品监督管理总局中基于中华人民共和国化妆品生产许可证相关数据 知识点回顾 常见

Python网络爬虫-requests模块(II)

有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: #!/usr/bin/env python # -*- coding:utf-8 -*- import requests if __name__ == "__main__": #张三人人网个人信息页面的url url = 'http://www.renren.com/289676607/profile' #伪装UA

爬虫基础之requests模块

1. 爬虫简介 1.1 概述 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 1.2 爬虫的价值 在互联网的世界里最有价值的便是数据, 谁掌握了某个行业的行业内的第一手数据, 谁就是该行业的主宰. 掌握了爬虫技能, 你就成了所有互联网信息公司幕后的老板, 换言之,它们都在免费为你提供有价值的数据. 1.3 robots.txt协议 如果自己的门户网站中的指定页面中的数据不想让爬虫程序爬取到的话,那么