python爬蟲入門(一)

1、爬蟲的基本知識:

1. 什麼是爬蟲php

  • 爬蟲的英文翻譯爲spider或者crawder,意爲蜘蛛或者爬行者,從字面意思咱們能夠體會到:爬蟲就是把本身當作蜘蛛或者爬行者,沿着既定路線,爬到指定節點,獵取食物獲取目標。在這裏咱們的蜘蛛網即互聯網,咱們爬取的方法即爲路徑,咱們所要獲取的數據即爲食物或目標。

2. 爬蟲的核心html

  • 爬取網頁
  • 解析數據
  • 難點:與反爬蟲博弈(反爬蟲: 資源的全部者,想要保護資源,避免被第三方爬蟲程序批量的把資源下載下去。想辦法區分爬蟲程序和正常的用戶。)

3. 爬蟲的語言java

  • php:雖然是世界上最好的語言,可是天生不是幹爬蟲的命,PHP對多線程、異步支持不足,併發不足。爬蟲是工具性程序,對速度和效率要求較高。
  • java:生態圈完善,是Python最大對手。可是Java自己很笨重,代碼量大。重構成本比較高,任何修改都會致使大量代碼的變更。最要命的是爬蟲須要常常修改部分代碼。
  • CC++:運行效率和性能幾乎最強,可是學習成本很是高,代碼成型較慢,能用C/C++寫爬蟲,說明能力很強,可是不是最正確的選擇
  • Python:語法優美、代碼簡介、開發效率高、三方模塊多,調用其餘接口也方便。有強大的爬蟲Scrapy,以及成熟高效的scrapy-redis分佈式策略。

4. 爬蟲分類python

  • 通用爬蟲
    也就是百度、Google、360、搜狐、firefox等搜索引擎。特色是爬取網站全部內容、但不能根據客戶需求給出特定內容。在這裏,各家瀏覽器根據其pagerank分進行網站搜索的排名,同時還有競價排名。
  • 聚焦爬蟲
    就是如今咱們這些爬蟲程序員所進行的工做,就是根據客戶的需求,爬取指定網站的特定內容。

2、如何學習爬蟲

1. 首先要理解什麼是http/https協議程序員

2. python基礎知識正則表達式

  • urllib.request
  • urllib.parse
  • 正則表達式等等基礎知識。

3. 開發工具redis

4. 抓包工具chrome

  • chrome瀏覽器的開發者模式,在這裏能夠檢查網頁的各類元素。
  • fiddler:本來是爲測試來測試網站的,後來成了爬蟲工程師最喜好的工具。這是一款開源軟件,能夠直接去官網下載安裝https://www.telerik.com/downl...
  • postman:能夠根據請求頭信息生成簡單的網頁爬取代碼,界面相對於fiddler也要美觀
  • motimproxy

3、代碼實現簡單的爬蟲實例

  • python爬蟲有多簡單,下面我一行代碼爬取百度首頁,如同在瀏覽器輸入網址同樣簡單windows

    import urllib.request
    urllib.request.urlretrieve('http://www.baidu.com/', 'baidu.html')
  • 上面的代碼只能簡單抓取網頁,一旦遇到須要請求頭的反爬蟲時就不能發揮做用了,因此通常經常使用的爬蟲代碼以下:
import urllib.request
    url = 'http://www.baidu.com/'
    
    request = urllib.request.Request(url)
    
    response = urllib.request.urlopen(request)
    
    with open('baidu.html', 'wb') as f:
        f.write(response.read())
  • 請求頭反反爬蟲:瀏覽器

    import urllib.request
    #指定url
    url = 'https://www.qiushibaike.com/'
    #定義請求頭對象
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36'
    
    }
    #獲取網頁信息
    request = urllib.request.Request(url, headers=headers)
    
    response = urllib.request.urlopen(request)
    
    with open('xiushi.html','wb') as f:
        f.write(response.read())
今天先寫到這兒了,我爭取作到每日分享,與你們一塊兒學習,一塊兒進步,爲了美好的明天,艱苦奮鬥。
                                                     ————你與別人的差距在加班的時間。
相關文章
相關標籤/搜索