Python3抓取糗百、不得姐

?點擊關注?異步圖書,置頂公眾號

每天與你分享 IT好書 技術干貨 職場知識


重要提示1:本文所列程序均基于Python3.6,低于Python3.6的Python版本可能無法運行.
重要提示2:因所抓取的網站可能隨時更改展示內容,因此程序也需及時跟進.
重要提示3:本程序僅供學習,不能拿去做壞事.?

起步

1.安裝Python 3.6;
2.安裝以下庫:

9ccc0ca9gy1frekr4rrr4j20mj01z0sm.jpg

?

主要思路

整個程序,按照下面的步驟:

1.獲取要爬取頁面的URL地址(可以是分頁地址,可以在程序里面模擬分頁);
2.通過requests(一個封裝了urllib3的網絡庫,簡化了很多網絡請求的東西)下載上面URL地址的內容到內存(以前的方式是保存臨時文件);
3.用BeautifulSoup(一個解析HTML的庫)來讀取第二步中保存在內存中的內容,并解析出我們要的主要內容部分;
4.保存到數據庫或展示(特別說明:本示例程序不包含數據庫部分),程序最終會輸出多條json數據(已經包含了來源網站(自己定義的),創建時間等)

上述部分體現在代碼中,就是如下:

首先在Main.py中,定義:

9ccc0ca9gy1frekrd3ltwj20me03x74a.jpg

?用來格式化不得姐獲取到的數據,下面還要定義一個Qsyk來處理來自糗事百科的數據:

9ccc0ca9gy1frekrkkj1bj20mg03yweh.jpg

?

代碼中還有一個Kanqu.com的抓取處理,這里就不羅列了,這幾個唯一的區別就是:調用common.formatContent時,傳遞的第二個參數不一樣,第二個參數為要抓取的內容(HTML)的class.

CommonGrab中依賴了UserUtils.py中的代碼.

下面是CommonGrab的定義,在CommonGrab中主要做了兩件事:

  1. 抓取網頁內容,保存到內存;
  2. 解析HTML內容(使用BeautifulSoup)
  3. 將數據新增到數據庫中.(不新增數據庫到數據庫中.)

代碼如下:

9ccc0ca9gy1freks8agdpj20mj0mbq58.jpg

?

之后就是把上述的幾部分組合起來.

運行

運行部分的代碼如下,主要就是調用了上述幾部分的代碼:

9ccc0ca9gy1frekshnol8j20mh0kp764.jpg

?

源碼下載

CSDN:
https://download.csdn.net/download/dcxy0/9835268
Coding.net:
https://coding.net/u/pruidong/p/Python3GetQsbkBdj/git

文件:

main.py: 運行
UserUtils.py:工具?


本文來源于異步社區,作者:dcxy,作品《Python3抓取糗百、不得姐》,未經授權,禁止轉載。

?

9ccc0ca9gy1frcdobu7f5g20hs01pt93.gif

推薦閱讀

2018年5月新書書單(文末福利)

2018年4月新書書單

異步圖書最全Python書單

一份程序員必備的算法書單

第一本Python神經網絡編程圖書

?

9ccc0ca9gy1fqyf4q8tctj209k09k744.jpg

?長按二維碼,可以關注我們喲

每天與你分享IT好文。


在“異步圖書”后臺回復“關注”,即可免費獲得2000門在線視頻課程;推薦朋友關注根據提示獲取贈書鏈接,免費得異步e讀版圖書一本。趕緊來參加哦!

點擊閱讀原文,查看更多

閱讀原文

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254573.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254573.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254573.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

halcon邊緣檢測的方法及各種方法的適用范圍

目錄一、邊緣提取二、BLOB分析檢測三、贓物檢測一、邊緣提取 1、設置ROI興趣區域 2、快速二值化,并連接相鄰區域。 這樣做的目的是進一步減少目標區域,通過二值化將目標區域大概輪廓提取出來 3、提取最接近目標區域的輪廓 常用函數有boundary&#xff0…

Oracle優化-表設計

前言  絕大多數的Oracle數據庫性能問題都是由于數據庫設計不合理造成的,只有少部分問題根植于Database Buffer、Share Pool、Redo Log Buffer等內存模塊配置不合理,I/O爭用,CPU爭用等DBA職責范圍上。所以除非是面對一個業已完成不可變更的系…

Win10遠程桌面 出現 身份驗證錯誤,要求的函數不受支持,這可能是由于CredSSP加密Oracle修正 解決方法...

升級至win10 最新版本10.0.17134,遠程桌面連接Window Server時報錯信息如下: 出現身份驗證錯誤,要求的函數不正確,這可能是由于CredSSP加密Oracle修正。 解決方法: 運行 gpedit.msc 本地組策略: 計算機配置…

CMM2

原文出處:http://hi.baidu.com/seaweaver/blog/item/e80e7af427f674d9f2d3854a.html CMM2的六個KPA 1、需求管理 (RM,Requirement Management) 2、軟件項目計劃 (SPP,Software Project Planning&#…

查看linux系統核數

查看linux系統核數: grep ^processor /proc/cpuinfo | wc -l轉載于:https://www.cnblogs.com/myyan/p/5822368.html

Rsyslog 日志相關內容

[rootserver vusers_home]# rpm -ql rsyslog|more ###.so結尾為模塊,模塊有分im為輸入模塊,om 為輸出模塊/etc/logrotate.d/syslog/etc/pki/rsyslog/etc/rc.d/init.d/rsyslog/etc/rsyslog.conf/etc/rsyslog.d/etc/sysconfig/rsyslog/lib64/rsyslog…

MFC導出對話框類DLL的實現

1.新建基于對話框的應用程序 2.新建MFC DLL工程 3.選擇MFC DLL 4.選擇擴展Dll選項(重要!!!) 5.為Dll工程添加一個MFC類,基類為CDialogEx 6.Dll新建的MFC 類中添加resource.h防止編譯出錯…

中國如何引進CMM評估,促進軟件產業發展

北京軟件行業協會 (本文轉載自軟件工程專家網www.21cmm.com) 一、CMM的含義及作用   CMM(軟件能力成熟度模型:Capability Maturity Model For Software)是由美國卡內基梅 隆大學的軟件工程研究所(SEI&a…

關于游戲平衡性——王者榮耀英雄傷害數值參考

收集王者榮耀各個英雄的裝備對技能增加的百分比,這樣的主要目的為保證游戲的平衡性。對于技能主要包括:血量、物理攻擊、法術攻擊、物理穿透、法術穿透、暴擊等。關于各個裝備,已經列成一張excel表格,在這里不再詳細描述表格。在這…

Swift-setValuesForKeysWithDictionary

重寫 setValuesForKeysWithDictionary 那么字典中可以有的字段在類中沒有對應屬性 class Person : NSObject {var age :Int 0 // 重寫 setValuesForKeysWithDictionary 那么字典中可以有的字段在類中沒有對應屬性override func setValuesForKeysWithDictionary(keyedValues…

hdu 1269 迷宮城堡(trajan判環)

題目鏈接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1269 題意&#xff1a;略 題解&#xff1a;trajan模版直接求強連通分量。 #include <iostream> #include <cstring> #include <cstdio> using namespace std; const int N 1e4 10; const i…

Arithmetic圖像處理halcon算子持續更新

目錄abs_diff_imageabs_imageacos_imageadd_imageasin_imageatan2_imageatan_imagecos_imagediv_imageexp_imagegamma_imageinvert_imagelog_imagemax_imagemin_imagemult_imagepow_imagescale_imagesin_imagesqrt_imagesub_imagetan_imageabs_diff_image 功能&#xff1a;計算…

身于“亂世”,我們程序員應該如何打算?

今天看了這篇文章&#xff0c; 發現自己也有點生處亂世&#xff0c;不平之感&#xff0c;但是文章的樸實卻讓我有了一個良好的反省&#xff0c;特此轉載 分類&#xff1a; 項目管理 2011-09-04 00:58 770人閱讀 評論(12) 收藏 舉報 不僅要低頭拉車&#xff0c;還要抬頭看路。…

Activity的啟動流程

Activity的啟動流程 努力工作 自己平時工作接觸的frameworks代碼比較多&#xff0c;但真正理解的很有限&#xff0c;一直在努力分析。。我主要還是用補丁的形式來看 core/java/android/app/Activity.java | 6 core/java/android/app/ActivityManagerNative.jav…

es6--箭頭函數

基本用法 ES6允許使用“箭頭”&#xff08;>&#xff09;定義函數。 var f v > v; 上面的箭頭函數等同于&#xff1a; var f function(v) {return v; }; 如果箭頭函數不需要參數或需要多個參數&#xff0c;就使用一個圓括號代表參數部分。 var f () > 5; // 等同于…

halcon Bit圖位像素處理算子,持續更新

目錄bit_andbit_lshiftbit_maskbit_notbit_orbit_rshiftbit_slicebit_xorbit_and 功能&#xff1a;輸入圖像的所有像素的逐位與。 bit_lshift 功能&#xff1a;圖像的所有像素的左移。 bit_mask 功能&#xff1a;使用位掩碼的每個像素的邏輯與。 bit_not 功能&#xff1…

NYOJ題目839合并

--------------------------- AC代碼&#xff1a; 1 import java.util.Scanner;2 3 public class Main {4 5 public static void main(String[] args) {6 7 8 Scanner scnew Scanner(System.in);9 10 int timessc.nextInt(); 11 …

指針的魅力

序 指針說&#xff1a;love me&#xff0c;love me&#xff01; 但是他對指針說&#xff1a;I hate u&#xff0c;I hate u&#xff01; …… 指針僅僅是作為指針&#xff0c;我們可以把它當做有用的工具&#xff0c;為我們提供便利與好處。說起工具不得不讓我想起一樣東西—…

python多進程

2019獨角獸企業重金招聘Python工程師標準>>> python多進程 進程簡介 進程是程序在計算機上的一次執行活動。當你運行一個程序&#xff0c;你就啟動了一個進程。顯然&#xff0c;程序是死的(靜態的)&#xff0c;進程是活的(動態的)。進程可以分為系統進程和用戶進程。…

halcon彩色圖像顏色處理算子,持續更新

目錄apply_color_trans_lutcfa_to_rgbtrans_to_rgbclear_color_trans_lutcreate_color_trans_lutgen_principal_comp_translinear_trans_colorprincipal_comprgb1_to_grayrgb3_to_graytrans_from_rgbapply_color_trans_lut 功能&#xff1a;申請使用顏色查找表。 cfa_to_rgb …