工具: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. 写一个函数封装printf用作trace

    转自http://blog.csdn.net/coder_weisong/article/details/10285291     写一个函数封装printf用作trace   方法一:   #inc ...

  2. Mat 类的内存管理

    使用 Mat 类,内存管理变得简单,不再像使用 IplImage 那样需要自己申请和释放内存.虽然不了解 Mat 的内存管理机制,也无碍于 Mat 类的使用,但是如果清楚了解 Mat 的内存管理,会更 ...

  3. UNIX和Linux信号

    1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号).不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失 ...

  4. Sublime Text3注册码供研究使用

    文章介绍 看到文章时候感觉不错,一直用的Notepad++.文章属于转载,文末有文章来源,转载注明出处. 一. Sublime 下载地址: Sublime 3: http://www.sublimet ...

  5. [学习笔记]scanf弊端以及解决方案

    #include<stdio.h> #include<stdlib.h> #include<unistd.h> int main(void) { ]; //mems ...

  6. Java50道经典习题-程序27 求素数

    题目:求100之内的素数分析:素数即除了1和它本身以外不再有其他因数,最小的素数是2 判断一个数n是否是素数的方法:将n分别与2到(n+1)/2取余,若有一个值为0,则n就不为素数,反之为素数 pub ...

  7. 通过ajax把json对象传入后台

    一.前台ajax部分 function icheckDelete(url){ var parms = { list : array //这是个数组 }; $.ajax({ dataType: &quo ...

  8. Aspose.Words CookieBook

    Aspose.Words.dll  版本 13.1.0.0 [原创]Aspose.Words组件介绍及使用—基本介绍与DOM概述 插入分页符 DocumentBuilder builder = new ...

  9. onmouseover和onmouseout在GridView中应用 Ver2

    第一个版本,可以参考:http://www.cnblogs.com/insus/archive/2009/03/13/1411057.html 以前的版本,是在Gridview的OnRowCreate ...

  10. 斐波那契数列的Python实现

      斐波那契数列的Python实现:递归实现.非递归实现.斐波那契数列生成器: \[ \begin{equation} F(n)= \begin{cases} n & n=0, 1\\ F(n ...