01爬蟲基本原理及Requests庫下載

一、爬蟲基本原理

1.什么是爬蟲

? 爬蟲就是爬取數據

2.什么是互聯網?

? 就是由一堆網絡設備,把一臺臺的電腦互聯在一起

3.互聯網建立的目的

? 數據的傳遞和數據共享

4.什么是數據?

? 例如:

? 電商平臺的商業信息(淘寶、京東、亞馬遜)

? 鏈家、自如等租房信息

? 股票政券投資信息

? 12306票務信息

? ....

4.1什么是進程和線程

? 打比方:打開QQ是進程

? QQ中的很多群是線程

5.什么是上網

? 普通用戶:

? 打開瀏覽器

? →輸入網址

? →往目標主機發送請求

? →返回響應數據

? →把數據渲染到瀏覽器中

? 爬蟲程序:

? 模擬瀏覽器

? →往目標主機發送請求

? →返回響應數據

? →提取有價值的信息

? →保存數據(文件寫入本地、持久化到數據庫)

6.爬蟲的全過程

? 1.發送請求

? 請求庫:Requests/Selenium

? 2.獲取響應數據

? 3.解析數據

? 解析庫:BeautifulSoup4

? 4.保存數據

? 存儲庫:文件保存/MongoDB

總結

假如把互聯網中的數據比作一座寶藏,爬蟲其實就是在挖取寶藏

二、Requests請求庫

1.安裝

方法一:pip3 install requests

如果報錯,則是環境變量沒有配好,可以在pycharm中下載

方法二:
1729728-20190701142440838-922134952.png
1729728-20190701142520708-485377395.png
1729728-20190701142530618-1208173656.png
1729728-20190701142539333-1860926947.png

2.分析請求流程(模擬瀏覽器)

? -百度

? 1.請求url:https://www.baidu.com/

? 2.請求方式

? 3.響應狀態碼

三、爬蟲三部曲(測試)

1.發送請求

# 發送請求
def get_page(url):response = requests.get(url)return response

2.解析數據

#解析主頁頁面
import re
def pare_index(html):#findall 匹配所有# re.findall('正則匹配規則','匹配文本','匹配模式')#re.S 對全部文本進行搜索detail_urls = re.findall('<div class="items"><a class="imglink" href="(.*?)"',html,re.S)return detail_urls# 解析詳情頁
def pare_detail(html):detail_urls = re.findall('<sourse src="(.*?)">',html,re.S)return detail_urls

3.保存數據

#保存文件
import uuid
def save_movie(content):with open(f'{uuid.uuid4()}','wb') as f:f.write(content)print("視頻下載完畢")

轉載于:https://www.cnblogs.com/Crystal-Zh/p/11113823.html

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

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

相關文章

php 怎么實現收藏功能,php收藏功能如何實現

php收藏功能如何實現php收藏功能的實現方法&#xff1a;首先創建好數據庫表 &#xff1b;然后創建前臺代碼&#xff0c;實現登錄界面&#xff1b;接著通過html實現收藏樣式&#xff1b;最后使用php進行后臺處理即可。推薦&#xff1a;《PHP視頻教程》這是數據庫表話不多說上代碼…

quartus FIR仿真筆記

第一章&#xff1a; 最近百度了一些fir濾波器的資料&#xff0c;都沒有自己想要的。容我吐槽一大段文字> 在舊版的quartus中&#xff0c;比如13.0&#xff0c;有兩個fir濾波器的選項&#xff0c;如下所示&#xff1a; 網上很多都是講不帶II的那個&#xff0c;而在新版的quar…

關于時鐘

/** * 時間獲取 * * param mGITime 控件 * param context 承接上下文 */public void endTime(GeneralInput mGITime, Context context) { TimePickerDialog tp new TimePickerDialog(context, (view12, hourOfDay, minute) -> { StringBuilder sb new StringBui…

LVS + Keepalived 雙機熱備+DR模式

簡介 Keepalived 起初是專門針對 LVS 設計的一款強大的輔助工具&#xff0c;主要用來提供故障切換和健康檢查&#xff08; Health Checking &#xff09;功能——判斷 LVS 負載調度器、節點服務器的可用性&#xff0c;及時隔離并替換為新的服務器&#xff0c;當故障主機恢復后就…

php程序layer,php 提交表單 關閉layer彈窗iframe的實例講解

介紹一款非常好用的前端彈窗插件&#xff1a;根據官方的API&#xff1a;layer的iframe彈窗//iframe層-父子操作layer.open({type: 2,area: [700px, 530px],fix: false, //不固定maxmin: true,content: test/iframe.html});這里以php開發為例 演示如何 提交表單后自動關閉layer彈…

Django之 RESTful規范

RESTful 規范 一、什么是RESTful REST與技術無關&#xff0c;代表的是一種軟件架構風格&#xff0c;REST是Representational State Transfer的簡稱&#xff0c;中文翻譯為“表征狀態轉移”REST從資源的角度類審視整個網絡&#xff0c;它將分布在網絡中某個節點的資源通過URL進行…

php編譯 ftp,無需重新編譯php加入ftp擴展的解決方法

首先&#xff0c;進入源碼目錄cd php-5.2.13/ext/ftp#運行phpize生成configure/usr/local/php/bin/phpize#編譯,指定php-config,注意這里的php-config,不是php.ini./configure --with-php-config/usr/local/php/bin/php-config#上面可以添加--enable-ftp,也可以不用添加#編譯安…

git常用命令及分支簡介

2019獨角獸企業重金招聘Python工程師標準>>> 1、git基本命令 1&#xff09;git add 將想要快照的內容寫入緩存區 2&#xff09;git status -s "AM" 狀態的意思是&#xff0c;這個文件在我們將它添加到緩存之后又有改動 3&#xff09;git commit -m 第一次…

企業私有云部署im,視頻服務

1&#xff0c;安全問題 2&#xff0c;員工跨地域 3&#xff0c;內部視頻培訓 考勤申請&#xff0c;設備借用申請 名片申請 會議室預訂 審批 內網&#xff0c;局域網部署 Android源碼 https://github.com/starrtc/android-demo ios源碼https://github.com/starrtc/ios-demo

php html 偽靜態,php 偽靜態(url重寫)的寫法

來看下面這個網頁 url&#xff1a;http://www.jbxue.com/test.php/1,100,8630.html其實處理的腳本是test.php 參數為1,100,8630相當于test.php?a1&b1100&c8630 只不過這樣的URL太難記。搜索引擎也不喜歡。真靜態只是完全生成了HTML。客戶端訪問的時候直接輸出。不用腳…

客服工作臺

public Page<Record> customerDeskList(QhyfController controller) throws Exception {//獲取分頁信息PageInfo pageInfo controller.getPageInfo();int pageNumber pageInfo.getPageIndex();int pageSize pageInfo.getPageSize();List<String> paras new Arr…

Leetcode怎么調試java代碼,在Clion上調試LeetCode代碼

在Clion上調試LeetCode代碼在leetcode上做題調試起來總有些不方便&#xff0c;所以查閱了一些資料后&#xff0c;按以下配置&#xff0c;自我感覺效率還行&#xff0c;分享給大家。祝大家刷題愉快。并附上自己整理的leetcode400題題表。Leetcode400題&#xff1a;notion地址依賴…

來入門一下kotlin吧

Kotlin是什么&#xff1f; Kotlin是一種在java虛擬機上運行的靜態類型的編程語言&#xff0c;被稱之為 Android 世界的Swift&#xff0c;由 JetBrains 設計開發并開源。 Kotlin的優勢&#xff01; Kotlin可以編譯成java字節碼&#xff0c;也可以編譯成JavaScript。方便在沒有ja…

apache2 配置php,Windows配置PHP5與Apache2

windows下安裝和配置PHP5與Apache2真是比linux下難多了&#xff0c;唉。這里用的是PHP Version 5.2.1和Apache HTTP Server 2.2.4&#xff0c;都是從官方網站下的。1. 下載安裝&#xff0c;不多說了&#xff0c;apache一路按下去就ok&#xff0c;php連按都不用&#xff0c;解壓…

ReactNative 觸摸事件處理

ReactNative觸摸事件處理 對RN觸摸事件的捕獲與冒泡機制的理解 組件A、B、C結構 組件A組件B組件C 捕獲、冒泡機制 sequenceDiagram A->>A: 是否捕獲&#xff1f;若是則停止向下一級傳遞 A->>B: B->>B: 是否捕獲&#xff1f;若是則停止向下一級傳遞 B->&g…

CISCO網絡故障排錯命令總結分享

一、故障處理命令 1、show命令&#xff1a; 1&#xff09; 全局命令&#xff1a; show version &#xff1b;顯示系統硬件和軟件版本、DRAM、Flash show startup-config &#xff1b;顯示寫入NVRAM中的配置內容 show running-config &#xff1b;顯示當前運行的配置內容 show b…

java input回車,用java怎樣編寫加減乘除,從鍵盤輸入,例如:1+2按回車得到

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓import org.junit.Test;import java.util.regex.Matcher;import java.util.regex.Pattern;public class TestCalc {Testpublic void testCalculator() {String input "11";//輸入String rule "(\\d\\.?\\d*)([\\…

Java中數組在內存中的存放原理?

版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 https://blog.csdn.net/yangyong0717/article/details/79165685Java中數組被實現為對象&#xff0c;它們一般都會因為記錄長度而需要額外的內存。對于一個原始數據類型的數組&#xff0c;一般需要24…

程序員如何面試才能拿到offer

一、概述 面試&#xff0c;難還是不難&#xff1f;取決于面試者的底蘊&#xff08;氣場技能&#xff09;、心態和認知及溝通技巧。面試其實可以理解為一場聊天和談判&#xff0c;在這過程中有心理、思想上的碰撞和博弈。其實你只需要搞清楚一個邏輯&#xff1a;“面試官為什么會…

php 跨區域,如何構造PHP的內容包括在非安全(http://)和安全(https://)區域以及跨多個目錄使用?...

只需使用//example.com/foo.blah即可.< img id “sample-image”src “// /media/sample-image.png”/>很明顯,HTTP是協議,但存在其他協議,如GOPHER,HTTPS,FTP等……而不是在gopher URL gopher&#xff1a;//example.com上,您只需鏈接到//example.com,協議就可以在沒有它…