1. 程式人生 > >簡單爬蟲函式的封裝(Python)

簡單爬蟲函式的封裝(Python)

def downloadPage2(url, req_num=10, charset='utf-8', user_agent=None):
    """
    下載網頁資訊,user-Agent的設定
    處理了500-600的錯誤
    限制了錯誤處理的上限次數
    網頁的編碼設定
    :param url: 請求的url連線
    :return: 返回值
    """
    if not user_agent:
        user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)\
            AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36'
    headers = {'User-Agent': user_agent}
    req = request.Request(url, headers=headers)
    try:
        response = request.urlopen(req)
        with open('test.html', 'wb') as f:
            f.write(response.read())
    except error.HTTPError as e:
        # 伺服器錯誤
        print(e.code)
        html = None
        if req_num > 0:
            if hasattr(e, 'code') and 500 <= e.code <= 600:
                time.sleep(random.randint(5, 11))
                downloadPage2(url, req_num-1)
    except error.URLError:
        print("url error")
        html = None
    return html


if __name__ == '__main__':
    url = 'http://www.sina.com.cnn'
    req = {
        'charset': 'utf-8',
        'req_num': 5,
    }
    print(downloadPage2(url,**req))
    re = redis.Redis()


相關推薦

簡單爬蟲函式封裝Python

def downloadPage2(url, req_num=10, charset='utf-8', user_agent=None): """ 下載網頁資訊,user-Agent的設定 處理了500-600的錯誤 限制了錯誤處理的上限次數

一個簡單函式封裝JavaScript+html

本程式演示的是一個簡單的怎麼把程式碼寫的更好少點,提高程式碼的利用。 比如想給三個div不一樣的顏色,我們該怎麼寫?(本程式雖然很簡單,但是程式思想很好) 效果如下: 第一種寫法:<!D

簡單爬蟲專案實戰

概述   最近自己想搞一個小的專案,這個專案我們就先從爬蟲開始,爬取直播吧的NBA滾動新聞,再存入資料庫。先寫個簡單點的,後期再不斷的優化下。 準備   直播吧對於喜歡看球的朋友肯定不陌生,https://www.zhibo8.cc/,開啟我們看到如下介面, 我們選擇NBA新聞tab,然後選擇滾動

spark 常用函式介紹python

全棧工程師開發手冊 (作者:欒鵬) 獲取SparkContext python語法 1. 獲取sparkSession: se = SparkSession.builder.config(conf = SparkConf()).getOrCreate()

網絡爬蟲簡單介紹python

我們 大型 搜索 () 介紹 面積 截取 困難 狀況 一、簡介 爬蟲就是利用代碼大量的將網頁前端代碼下載下來使用的一種程序,一般來說常見的目的為下: 1、商業分析使用:很多大數據公司都會從利用爬蟲來進行數據分析與處理,比如說要了解廣州當地二手房的均價走勢就可以到房屋中介的網

爬蟲requests庫簡單抓取頁面資訊功能實現Python

import requests import re, json,time,random from requests import RequestException UserAgentList = [ "Mozilla/5.0 (Windows NT 6.1; WO

一個鹹魚的Python爬蟲之路:爬取網頁圖片

you os.path odin 路徑 生成 存在 parent lose exist 學完Requests庫與Beautifulsoup庫我們今天來實戰一波,爬取網頁圖片。依照現在所學只能爬取圖片在html頁面的而不能爬取由JavaScript生成的圖。所以我找了這個網站

Python爬蟲小白---爬蟲基礎--Selenium PhantomJS

decode bject windows beautiful 結構 由於 target header 速度 一、前言    前段時間嘗試爬取了網易雲音樂的歌曲,這次打算爬取QQ音樂的歌曲信息。網易雲音樂歌曲列表是通過iframe展示的,可以借助Selenium獲

python面向對象之 封裝Day25

imp disco font 使用 ati 所有 下劃線 error: 無法 封裝:   隱藏對象的屬性和實現細節,僅對外提供公共訪問方式 好處:1.將變化隔離    2.便於使用    3.提高復用性    4.提高安全性 封裝原則:    1.將不需要對外提供的內容隱藏

Python爬蟲實例爬取百度貼吧帖子中的圖片

選擇 圖片查看 負責 targe mpat wid agent html headers 程序功能說明:爬取百度貼吧帖子中的圖片,用戶輸入貼吧名稱和要爬取的起始和終止頁數即可進行爬取。 思路分析: 一、指定貼吧url的獲取 例如我們進入秦時明月吧,提取並分析其有效url如下

Python爬蟲實例使用selenium抓取鬥魚直播平臺數據

def 獲取 平臺 es2017 抓取 設置 log ips driver 程序說明:抓取鬥魚直播平臺的直播房間號及其觀眾人數,最後統計出某一時刻的總直播人數和總觀眾人數。 過程分析: 一、進入鬥魚首頁http://www.douyu.com/directory/all 進

Python爬蟲實例代理的使用

pen .sh strong list blank 寫入 禁止 bsp open() 一些網站會有相應的反爬蟲措施,例如很多網站會檢測某一段時間某個IP的訪問次數,如果訪問頻率太快以至於看起來不像正常訪客,它可能就會會禁止這個IP的訪問。所以我們需要設置一些代理服務器,每隔

Python爬蟲實例網站模擬登陸

opener 運行 webkit zh-cn head window targe Coding 破解 一、獲取一個有登錄信息的Cookie模擬登陸 下面以人人網為例,首先使用自己的賬號和密碼在瀏覽器登錄,然後通過抓包拿到cookie,再將cookie放到請求之中發送請求即可

appium+python自動化24-滑動方法封裝swipe【轉載】

start fun optional image device rgs launcher ice oba swipe介紹 1.查看源碼語法,起點和終點四個坐標參數,duration是滑動屏幕持續的時間,時間越短速度越快。默認為None可不填,一般設置500-1000毫秒比較

Python 爬蟲實例7—— 爬取 新浪軍事新聞

secure host agen cat hand .com cati ica sts 我們打開新浪新聞,看到頁面如下,首先去爬取一級 url,圖片中藍色圓圈部分 第二zh張圖片,顯示需要分頁,

運維學python爬蟲中級篇數據存儲無數據庫版

就是 erro mage name 打印 反序 lis object Circul 本篇主要介紹,爬取html數據後,將html的正文內容存儲為json或csv格式。 1 json格式存儲 選定要爬取的網站後,我們利用之前學過的內容,如:Beautiful Soup、xpa

運維學python爬蟲中級篇Sqlite3

pro odin any /dev/ 裏的 連接 oracle postgresq pycharm 前文已經講過無數據庫版本操作(csv,json),今天我們要開始講有數據庫版本的操作,首先就是sqlite3。 1 介紹 SQLite是一個C庫,它提供了一個輕量級的基於磁盤

Python 爬蟲實例10—— 四行代碼實現刷 博客園 閱讀數量

體會 博客 http log 實例 代碼 port 代碼實現 ive 代碼很少,自己去體會 from selenium import webdrever driver = webdrever.Chrome() url = "http://www.cnblo

運維學python爬蟲中級篇Python3 MySQL 數據庫連接

結束 學python ofo 如何 res 2.7 獲取數據 執行 mail 最近因為年底,連續兩個項目要投產上線,又趕上公司年會,忙的要死,更新有些慢,見諒。今天要說一說python如何對mysql進行操作。在 Python3.x 版本中用於連接 MySQL 服務器的庫與

Python 爬蟲實例12—— python selenium 爬蟲

bsp ide doc wid environ att fig exc title # coding:utf-8 from common.contest import * def spider():  url = "http://www.salamoyua.