python爬取網頁資料
前言:
轉載請註明出處。
注意事項:請於作者下載的版本保持一致
如有細節不瞭解可對比參考python基礎教程:例如系統不一致(Windows/Unix/Linux)
環境:
我的電腦是windows系統64位,如有不同可根據電腦系統自行選擇合適的版本下載
我用的是Pycharm 2018.1.4 ,因為剛學,一下單詞記不住需要提示。而notepad++需要自己手打而沒有選擇。
想簡單點可以選擇notepad++,想偷懶可以選擇Pycharm(前提是比較熟悉這個IDE的基礎功能)
對了,Pycharm需要註冊碼,一般有兩種方式:註冊碼和本地搭建伺服器授權,我這裡只提供我自己用的一種方式:註冊碼
第一步點選獲取註冊碼,
第二步把“0.0.0.0 account.jetbrains.com”新增到hosts檔案中。
hosts檔案目錄一般位於C:\Windows\System32\drivers\etc
最後一步就是把獲取到的註冊碼複製貼上到開啟Pycharm後的Actication code 裡面電腦系統環境:windows 7
一、初始準備
下載python
我的目錄為D:\Program Files (x86)\Python27
下載完後記住你的python的安裝目錄
配置環境變數:
找到計算機點選滑鼠右鍵選擇屬性:然後出現如下圖,依次雙擊
最後找到Path,編輯變數值,在最後面加上
;D:\Program Files (x86)\Python27;D:\Program Files (x86)\Python27\Scripts;
注意如果變數值最後面已經有“;”就不需要再加";"。
其中D:\Program Files (x86)\Python27 這個是你python的路徑,讓你方便執行python命令
例如看是否安裝好,以及看python版本,直接輸入cmd命令:python
C:\Users\Administrator>python
會顯示python版本,並進入python互動器(互動式直譯器)模式其中D:\Program Files (x86)\Python27\Scripts;這個是一些可執行檔案目錄,我主要是為了更方便執行pip命令來下載相關包
這下準備工作大功告成了,為自己鼓掌!!
二、需要了解的python知識
pip命令:本次學習主要用到的命令,安裝第三方庫
pip install -U <包名>
需要安裝的包:每個包的作用自行百度瞭解
import requests
import sys
import re
from lxml import etree
安裝命令:(前提配置了D:\Program Files (x86)\Python27\Scripts;這個目錄到Patn,如沒有請進入這麼目錄在輸入下面命令)
pip install requests
pip install sys
pip install re
pip install lxml
我這個是已經下載了,
三、爬取資料
例項一:爬取csdn首頁的推薦欄標題
話不多說直接上程式碼
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
import requests
from lxml import etree
reload(sys)
sys.setdefaultencoding("utf-8")
def _request(url, encoding='utf-8'):
response = requests.get(url)
response.encoding = encoding
html = response.text
return etree.HTML(html)
html = _request('https://www.csdn.net/')
recommend_title = html.xpath("//div[@class='nav_com']//a/text()")
print(len(recommend_title))
for title in recommend_title:
print(title)
其中重點是隨時要注意的編碼。
這時候有人要問為什麼不用正則來篩選?
我是個相對而言喜歡簡單明瞭一點的,所以用xpath來篩選資料。
具體喜歡用什麼方式因人而已吧,只要能篩選出你需要的資料,就是好的。
例項二:網上還有一些用scrapy框架來爬取資料的我這裡也略帶提一下
參考網上的scrapy框架的同學可能煩的時pip install scrapy 這個下載不下來,這就是版本的重要性了,你如果用的是我說的python版本,只需一個pip install scrapy命令,就ok了,不用煩惱別的。
scrapy專案的建立:scrapy startproject 專案名
scrapy startproject projectDemo
然後在E:\scrapy目錄下就會出現該專案。專案結構如圖