1. 程式人生 > >Python Requests和urllib兩種方式下載網頁到本地

Python Requests和urllib兩種方式下載網頁到本地

目標:針對網頁用requests和urllib兩種方式將檔案內容下載到本地txt檔案中。
網頁:百度首頁 http://www.baidu.com
Requests方式:

# -*-coding:UTF-8 -*-
import requests
import sys

reload(sys)
sys.setdefaultencoding('utf-8')

def getWebPage(url):
    try:
        urlpage = requests.get(url)
    except IOError:
        print "IOError"
    '''
    urlpage.text中包含網頁的原始碼內容
    '''
WebPageDownload(urlpage.text) def WebPageDownload(text): ''' 將下載的網頁儲存到file.txt檔案中 ''' ff = open("baiduPageByRequests.txt",'w') ff.writelines(text) ff.close() if __name__ == '__main__': getWebPage(url='http://www.baidu.com')

urllib方式:

# -*-coding:UTF-8 -*-
from urllib import
urlretrieve def getWebPage(url): try: ''' urlretrieve函式會將url定位的網頁下載到臨時檔案中 ''' revtal = urlretrieve(url)[0] except IOError: revtal = None if revtal:#如果revtal不為空的話,說明網頁下載成功了,那麼我們就可以去處理它了 saveWebPage(revtal) def saveWebPage(webpage): ''' 將下載的網頁儲存到file.txt檔案中 '''
f = open(webpage)#將下載的臨時檔案開啟 lines = f.readlines()#將下載的網頁資訊儲存到lines中 f.close()#關閉檔案物件 fobj = open("baiduPageByurllib.txt",'w')#以寫的方式開啟file.txt,如果file.txt不存在,那麼將建立一個 fobj.writelines(lines)#將網頁資訊寫入file.txt中 fobj.close()#關閉檔案物件 if __name__ == '__main__': getWebPage(url='http://www.baidu.com')

兩種方式都可以將網頁原始碼下載到本地,這是我們將來分析網頁或者做網頁爬蟲的第一步。
這裡寫圖片描述

相關推薦

Python Requestsurllib方式下載網頁本地

目標:針對網頁用requests和urllib兩種方式將檔案內容下載到本地txt檔案中。 網頁:百度首頁 http://www.baidu.com Requests方式: # -*-coding:UTF-8 -*- import requests im

java實現下載excle(jxlpoi 方式

@RequestMapping(value="/download_index") public String downloadExcel(HttpServletRequest request,HttpServletResponse response,String nam

Android以JSONOjectGSON方式解析json

length pre ray oid 字符 CA clas img name json文件如下: 將獲取到的json數據轉化為String形式 OkHttpClient client = new OkHttpClient(); R

JDBC中Oracle的SIDServiceName方式的連接字符串格式

bottom none color bubuko div nbsp rac 字符串 padding SID格式: jdbc:oracle:thin:@<host>:<port>:<SID> 如: jdbc:oracle:thin:@19

9.10 路由控制之反向解析--【別名】htmlviews方式實現

com 反向 技術分享 http mage login gin bsp 分享圖片 1. 在html裏反向解析 給路徑起別名,修改路徑時,不用每個地方都修改。 {% url ‘Log‘ %} : 就會去找別名為Log的URL,找到 "login/"後把"logi

julia開發環境安裝——VS code擴充套件JuliaPro方式

VS code擴充套件方式 首先,下載安裝julia1.0.0:我的上一篇文章 完成後,配置系統環境變數: 控制面板\所有控制面板項\系統–>高階系統設定 高階欄下點選系統變數~ 如圖: 在path下新增你的julia/bin路徑如(圖):G:\Julia-1.0.0

Map集合的遍歷方式以及TreeMap集合儲存自定義物件實現比較的ComparableComparator方式

Map集合的特點 1、Map集合中儲存的都是鍵值對,鍵和值是一一對應的 2、一個對映不能包含重複的值 3、每個鍵最多隻能對映到一個值上   Map介面和Collection介面的不同 Map是雙列集合的根介面,Collection是單列集合的根介面 1、Map是雙列的(是雙列集合的根介

Redis詳解 - SpringBoot整合Redis,RedisTemplate註解方式的使用

本文主要講 Redis 的使用,如何與 SpringBoot 專案整合,如何使用註解方式和 RedisTemplate 方式實現快取。最後會給一個用 Redis 實現分散式鎖,用在秒殺系統中的案例。 更多 Redis 的實際運用場景請關注開源專案 coderiver 專案地址:github.com/cac

mysqldumpxtrabackup方式進行非空庫複製搭建

mysqldump和xtrabackup兩種方式進行非空庫複製搭建 1、mysqldump非空庫複製搭建 2、xtrabackup非空庫複製搭建 mysqldump和xtrabackup兩種方式進行非空庫複製搭建 1、mysqldu

POI操作Excel詳解,HSSFXSSF方式

HSSF方式: package com.tools.poi.lesson1; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; impor

玩轉SpringCloud 三.斷路器(Hystrix)RestTemplate+RibbonFeign方式

 此文章基於: 三.斷路器(Hystrix) 在微服務架構中,根據業務來拆分成一個個的服務,服務與服務之間可以相互呼叫(RPC),在Spring Cloud可以用來呼叫。為了保證其高可用,單個服務通常會叢集部署。由於網路原因或者自身的原因,服務並不能保證100%可用,如果單個服務出現問

第一個django專案-通過命令列pycharm方式

以本機環境為例,ip地址為172.20.16.148,windows平臺,虛擬環境路徑為d:\VirtualEnv,專案存放位置為d:\DjangoProject   命令列方式 1.進入虛擬環境建立專案django-admin startproject projectname 專案的存

spring之AOP操作(基於aspectJ實現)--配置檔案註解方式實現

AOP概念   1 aop:面向切面(方面)程式設計,擴充套件功能不修改原始碼實現     2  AOP採取橫向抽取機制,取代了傳統縱向繼承體系重複性程式碼     3 aop底層使用動態代理實現     (1)第一種情況,有介面情況,使用動態代理建立介面實現類代理物

VirtualBox 設定虛擬機器網路 以及內建的linux系統 網路靜態ip的配置 包含有線無線方式

我們討論一下如何在Linux中設定網路連線,配置網路連線最基本的涉及到IP地址、掩碼、閘道器和DNS設定,一般情況下系統設定好以上資訊後就可以接入網路了,這裡介紹了Linux在文字模式下通過修改配置檔案來配置基本網路連線,涉及到更多的網路配置方法請參閱相關的書籍,本文只供Linu

JavaPHP方式實現上傳圖片到新浪微博的圖床

這幾天遇到一個需求,需要將圖片上傳到新浪微博的圖傳,研究了一下, 特此記錄1.模擬登陸,獲取cookie登入地址為:https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=140313

SparkStreaming通過Flume獲取資料(單機,pushpoll方式)的實現

    Flume是Cloudera提供的一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸的系統,Flume支援在日誌系統中定製各類資料傳送方,用於收集資料;同時,Flume提供對資料進行簡單處理,並寫到各種資料接受方(可定製)的能力。1、第一種方式,通過push的方

MyBatis之整合Spring(DaoMapper方式

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://ww

yum編譯方式升級or降級Centos核心

今天探討用yum和編譯兩種方式升級或者降級核心版本: 升級:比如玩kvm,docker等虛擬化,centos核心則升級尤為重要(雖然核心通過載入模組也可以玩,但是效果不如) 降級:如果發現核心在危險漏洞列,降級核心則顯得尤為重要。當然如果有特殊需求,也可以降級核心。 1、

註冊Servlet、FilterListener(程式碼註解方式)

由於SpringBoot預設是以jar包的方式啟動嵌入式的Servlet容器來啟動SpringBoot的web應用,沒有web.xml檔案。 故而採用其他方式來註冊三大元件:程式碼註冊和註解註冊。 【1】ServletRegistrationBean註冊Se

SpringBoot建立資料庫連線JdbcTemplateMybatis方式

Spring Boot有兩種方法與資料庫建立連線,一種是使用JdbcTemplate,另一種整合Mybatis,下面分別為大家介紹一下如何整合和使用這兩種方式。1. 使用JdbcTemplate<dependency>    <groupId>mysq