分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

爬虫(GET)——爬取多页的html

发布时间:2023-09-06 01:56责任编辑:赖小花关键词:GET爬虫

工具:python3

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

新学语法:with open as  

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

 1 # coding:utf-8 2 ?3 import urllib.request 4 ?5 def loadPage(fullurl,filename): 6 ????"""作用:根据url发送请求,获取服务器响应请求""" 7 ????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"} 8 ????print("正在下载" + filename) 9 10 ????request = urllib.request.Request(fullurl, headers=ua_headers )11 ????response = urllib.request.urlopen(request)12 ????return response.read()13 14 15 def writePage(html, filename):16 ????"""17 ????作用:将html内容写入到本地18 ????html:服务器相应文件内容19 ????"""20 ????print("正在写入" + filename)
??????# 新建文件,存储html信息21 ????with open(filename, "w") as f:22 ????????f.write(str(html))23 24 25 def tiebaSpider(url, beginpage, endpage):26 ????"""27 ????作用:贴吧爬虫调度器,负责组合处理每个页面的url28 ????url:贴吧url的前部分29 ????beginPage: 起始页30 ????endPage: 结束页31 ????:return:32 ????"""
??????# 构造每页的url和文件名33 ????for page in range(beginpage, endpage+1):34 ????????pn = (page-1)*5035 ????????fullurl = url + "&" + str(pn)36 ????????filename = "第" + str(page) + "页.html"37 38 ????????html = loadPage(fullurl, filename)39 ????????writePage(html, filename)40 ????print("完成!")41 42 43 if __name__ == "__main__":44 ????kw = input("请输入要爬取的贴吧名: ")45 ????beginPage = int(input("请输入起始页: "))46 ????endPage = int(input("请输入结束页: "))47 48 ????url = "http://tieba.baidu.com/f?"49 ????kw = urllib.parse.urlencode({"kw": kw})50 51 ????url = url + kw52 53 ????tiebaSpider(url, beginPage, endPage)

爬虫(GET)——爬取多页的html

原文地址:https://www.cnblogs.com/gaoquanquan/p/9089738.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved