工具:python3

目标:将编写的代码封装,不同函数完成不同功能,爬取任意页数的html

新学语法:with open as

除了有更优雅的语法,with还可以很好的处理上下文环境产生的异常。

 # coding:utf-

 import urllib.request

 def loadPage(fullurl,filename):
"""作用:根据url发送请求,获取服务器响应请求"""
ua_headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"}
print("正在下载" + filename) request = urllib.request.Request(fullurl, headers=ua_headers )
response = urllib.request.urlopen(request)
return response.read() def writePage(html, filename):
"""
作用:将html内容写入到本地
html:服务器相应文件内容
"""
print("正在写入" + filename)
# 新建文件,存储html信息
with open(filename, "wb") as f:
f.write(html) def tiebaSpider(url, beginpage, endpage):
"""
作用:贴吧爬虫调度器,负责组合处理每个页面的url
url:贴吧url的前部分
beginPage: 起始页
endPage: 结束页
:return:
"""
# 构造每页的url和文件名
for page in range(beginpage, endpage+):
pn = (page-)*
fullurl = url + "&" + "pn=" + str(pn)
filename = "第" + str(page) + "页.html" html = loadPage(fullurl, filename)
writePage(html, filename)
print("完成!") if __name__ == "__main__":
kw = input("请输入要爬取的贴吧名: ")
beginPage = int(input("请输入起始页: "))
endPage = int(input("请输入结束页: ")) url = "http://tieba.baidu.com/f?"
kw = urllib.parse.urlencode({"kw": kw}) url = url + kw tiebaSpider(url, beginPage, endPage)

爬虫(GET)——爬取多页的html的更多相关文章

  1. (java)Jsoup爬虫学习--获取智联招聘(老网站)的全国java职位信息,爬取10页

    Jsoup爬虫学习--获取智联招聘(老网站)的全国java职位信息,爬取10页,输出 职位名称*****公司名称*****职位月薪*****工作地点*****发布日期 import java.io.I ...

  2. 小爬虫。爬取网站多页的通知标题并存取在txt文档里。

    爬取网页中通知标题的内容展示: this is  1  page!<精算学综合>科目考试参考大纲2016年上半年研究生开题报告评议审核结果公示[答辩]2016下半年研究生论文答辩及学位评定 ...

  3. python爬虫系列之爬取多页gif图像

                   python爬取多页gif图像 作者:vpoet mail:vpoet_sir@163.com #coding:utf-8 import urllib import ur ...

  4. 多线程爬虫爬取详情页HTML

    注意:如果想爬取详情页的信息请按须添加方法 import requests import os import re import threading from lxml import etree #爬 ...

  5. python 爬虫之爬取大街网(思路)

    由于需要,本人需要对大街网招聘信息进行分析,故写了个爬虫进行爬取.这里我将记录一下,本人爬取大街网的思路. 附:爬取得数据仅供自己分析所用,并未用作其它用途. 附:本篇适合有一定 爬虫基础 crawl ...

  6. 学习用java基于webMagic+selenium+phantomjs实现爬虫Demo爬取淘宝搜索页面

    由于业务需要,老大要我研究一下爬虫. 团队的技术栈以java为主,并且我的主语言是Java,研究时间不到一周.基于以上原因固放弃python,选择java为语言来进行开发.等之后有时间再尝试pytho ...

  7. [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

    转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...

  8. 一起学爬虫——通过爬取豆瓣电影top250学习requests库的使用

    学习一门技术最快的方式是做项目,在做项目的过程中对相关的技术查漏补缺. 本文通过爬取豆瓣top250电影学习python requests的使用. 1.准备工作 在pycharm中安装request库 ...

  9. scrapy进阶(CrawlSpider爬虫__爬取整站小说)

    # -*- coding: utf-8 -*- import scrapy,re from scrapy.linkextractors import LinkExtractor from scrapy ...

随机推荐

  1. 批处理基本知识以及进阶 V2.0

    批处理基本知识以及进阶 将以要执行的程序指令 , 像在 dos 模式下一下写入记事本 , 保存成 bat 文件 , 就可以执行了 一 . 简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求 ...

  2. 关于MySQL隐式转换

    一.如果表定义的是varchar字段,传入的是数字,则会发生隐式转换. 1.表DDL 2.传int的sql 3.传字符串的sql 仔细看下表结构,rid的字段类型: 而用户传入的是int,这里会有一个 ...

  3. 后台传Map到ftl

    userInfo是后台传过来的Map <#list userInfo?keys as key> <tr > <td class="case_id" d ...

  4. jquery 使用记录

    1.jquery 筛选一个属性符合多个条件  var myTag=$("input[id=myid][name=myname][type=button]").length; 2.j ...

  5. C++11新标准:auto关键字

    一.auto意义 编程时常常需要把表达式的值赋给变量,这就要求在声明变量的时候清楚地知道表达式的类型,然后要做到这一点并非那么容易.为了解决这个问题,C++11新标准引入了auto类型说明符,用它就能 ...

  6. Java50道经典习题-程序26 求星期

    题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母.分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母.周一至周日的英文单词 ...

  7. SpringMVC的理解

    SpringMVC工作原理 SpringMvc是基于过滤器对servlet进行了封装的一个框架,我们使用的时候就是在web.xml文件中配置DispatcherServlet类:SpringMvc工作 ...

  8. 解决Visiual Studio2012 CLR20r3问题

    解决办法: 步骤1:开始-->所有程序-->Microsoft Visual Studio 2012-->Visual Studio Tools-->VS2012 开发人员命令 ...

  9. BootStrap母版页布局.子页面布局.BootstrapTable.模态框.警告框.html导出tabl生成Excel.HTML生成柱图.饼图.时间控件中文版

    如上就是很多后台管理系统的母版页布局. 左边一列模板.上面一列系统标识. 空白处充填子页面 以ASP.NET MVC为基础 引入bootstrap.js.bootstrap.css body: < ...

  10. SGML DTD

    最近处理SGML文档时,碰到的DTD语法: <!ELEMENT name - - (#PCDATA)>  说明:- - 代表 name 元素有开始标识和结束标识 <!ELEMENT ...