国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

初探python之做一個簡單小爬蟲

Juven / 2663人閱讀

摘要:準備工作初探,這個文章屬于自己的一個總結。所以教程面向新手,無技術含量。凡是報錯信息看到,就是表示縮進不一致。注由于原網址不方便公布,代碼中的網址全部替換為了。

準備工作

初探python,這個文章屬于自己的一個總結。所以教程面向新手,無技術含量。
python環境Linux基本都有,Windows下官網也提供了便利的安裝包,怎么安裝配置網上有很多教程在此就不一一說明。
我使用的python版本為Python 3.6.4,后面的代碼也是基于python3的。

分析需求

做一個小爬蟲離不開獲取網頁內容和匹配存儲內容,那么我們先裝上python爬蟲的老朋友requests:
pip install requests
再裝上pymysql擴展,方便將匹配到的內容插入到mysql數據庫中:
pip install pymysql

第一步:獲取網頁內容

在python中有意思的是你需要什么,就去import什么,不像php一樣獲取網頁內容直接來個file_get_contents完事兒
廢話不多說,貼出代碼來看一下:

# -*- coding:utf-8 -*-

# 加載 requests 模塊
import requests
# GET方式獲取 Response 對象
response = requests.get("https://www.xxx.com/")
if response:
    # 輸出html代碼到控制臺
    print(response.text)
else:
    # 輸出錯誤信息
    print("requests error")

在python中縮進一定要嚴格,初學者(4個空格為語句塊縮進)經常犯的錯誤是tab鍵和空間鍵混用,造成的縮進不一致。凡是報錯信息看到:IndentationError: unexpected indent ,就是表示縮進不一致。
如果本身沒有編碼基礎,那么我推薦你看一下python的基本概念:http://www.kuqin.com/abyteofp...
如果已經有了編碼基礎但對縮進這方面沒有深究,可以看python的縮進規范:http://www.kuqin.com/abyteofp...

好,寫完代碼之后我們拿到控制臺試一下,完美輸出html代碼

第二步:正則匹配內容

既然能夠獲取html代碼,那我們就要找出需要的部分,這就用上了正則。Python 自1.5版本起增加了 re 模塊,它提供 Perl 風格的正則表達式模式。具體細節可以在菜鳥教程中查看:http://www.runoob.com/python/...,話不多說再貼代碼:

# -*- coding:utf-8 -*-
# 加載 requests 模塊
import requests
# 加載 re 模塊
import re

response = requests.get("https://www.xxx.com/")
# 正則匹配文本
match = re.findall(r"

([sS]*?)

", response.text) if match: # 輸出匹配的內容到控制臺 print(match[0]) else: # 輸出html代碼到控制臺 print(response.text)

注:原網址為隨機一句文字顯示,每刷新一次就會變化一次。

第三步:循環匹配并加入數據庫中

首先我們把數據庫和表做好,可以用sql語句創建:

CREATE DATABASE IF NOT EXISTS `sentence`;
USE `sentence`;

CREATE TABLE IF NOT EXISTS `sexy` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` varchar(50) NOT NULL,
  `datetime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `content` (`content`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

這里將content設置為了UNIQUE KEY,是為了保證抓取到的內容不重復,如果有已存在的值便直接跳過

# -*- coding:utf-8 -*-
# 加載 requests 模塊
import requests
# 加載 re 模塊
import re
# 加載 pymysql 模塊
import pymysql

# 打開數據庫連接
db = pymysql.connect("127.0.0.1", "root", "root", "sentence", charset="utf8")
# 使用cursor()方法獲取操作游標
cursor = db.cursor()

#死循環到天長地久
while(True):
    response = requests.get("https://www.xxx.com/")
    # 正則匹配文本
    match = re.findall(r"

([sS]*?)

", response.text) if match: sql = "INSERT INTO `sexy` (`content`) VALUES ("%s")" % (match[0]) try: # 執行sql語句 cursor.execute(sql) # 提交到數據庫執行 db.commit() except: # 如果發生錯誤則回滾 db.rollback() # 輸出sql語句到控制臺 print(sql) else: # 輸出html代碼到控制臺 print(response.text)

運行演示:

數據庫內容:

總結

python是個好東西,萬物based on python
感覺教程貼比較難寫,每個地方都有細節,但如果講細了文章又太繁瑣,若簡單些不好取舍初學者又看不懂什么意思,向那些寫易懂的入門教程文章的作者致敬。
注:由于原網址不方便公布,代碼中的網址全部替換為了xxx.com。
源碼在Github中:https://github.com/st1ven/Pyt...,歡迎Star

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41301.html

相關文章

  • Scrapy的架構初探

    摘要:引言本文簡單講解一下的架構。沒錯,開源的通用提取器就是要集成到架構中,最看重的是的事件驅動的可擴展的架構。架構圖就是針對特定目標網站編寫的內容提取器,這是在通用網絡爬蟲框架中最需要定制的部分。 1. 引言 本文簡單講解一下Scrapy的架構。沒錯,GooSeeker開源的通用提取器gsExtractor就是要集成到Scrapy架構中,最看重的是Scrapy的事件驅動的可擴展的架構。除了...

    劉明 評論0 收藏0
  • 讓Scrapy的Spider更通用

    摘要:而分配任務的是會員中心的爬蟲羅盤,實現集中管理分布執行。開源即時網絡爬蟲項目同樣也要盡量實現通用化。網址和提取規則本來應該硬編碼到中的,現在隔離出來,由會員中心進行管理,那么就很容易做通用了。 showImg(https://segmentfault.com/img/bVyEnS); 1,引言 《Scrapy的架構初探》一文所講的Spider是整個架構中最定制化的一個部件,Spider...

    MartinDai 評論0 收藏0
  • Puppeteer初探--爬取并生成《ES6標準入門》PDF

    摘要:首先介紹是一個庫,他提供了一組用來操縱的默認也就是無的,也可以配置為有有點類似于,但是官方團隊進行維護的,前景更好。使用,相當于同時具有和的能力,應用場景會非常多。 首先介紹Puppeteer Puppeteer是一個node庫,他提供了一組用來操縱Chrome的API(默認headless也就是無UI的chrome,也可以配置為有UI) 有點類似于PhantomJS,但Puppet...

    JerryWangSAP 評論0 收藏0
  • Puppeteer 初探

    摘要:獲取獲取上下文句柄執行計算銷毀句柄除此之外,還可以使用意為在瀏覽器環境執行腳本,可傳入第二個參數作為句柄,而則針對選中的一個元素執行操作。 我們日常使用瀏覽器或者說是有頭瀏覽器時的步驟為:啟動瀏覽器、打開一個網頁、進行交互。 無頭瀏覽器指的是我們使用腳本來執行以上過程的瀏覽器,能模擬真實的瀏覽器使用場景。 有了無頭瀏覽器,我們就能做包括但不限于以下事情: 對網頁進行截圖保存為圖片或 ...

    appetizerio 評論0 收藏0
  • Scrapy:python3下的第一次運行測試

    摘要:,引言的架構初探一文講解了的架構,本文就實際來安裝運行一下爬蟲。第一次運行的測試成功,接下來的工作接下來,我們將使用來實現網絡爬蟲,省掉對每個人工去生成和測試的工作量。,文檔修改歷史,首次發布 1,引言 《Scrapy的架構初探》一文講解了Scrapy的架構,本文就實際來安裝運行一下Scrapy爬蟲。本文以官網的tutorial作為例子,完整的代碼可以在github上下載。 2,運行環...

    dack 評論0 收藏0

發表評論

0條評論

Juven

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<