python爬虫模式_python爬虫的入门试炼
網(wǎng)絡(luò)爬蟲初解:
如果我們把互聯(lián)網(wǎng)比作一張大的蜘蛛網(wǎng),數(shù)據(jù)便是存放于蜘蛛網(wǎng)的各個(gè)節(jié)點(diǎn),而爬蟲就是一只小蜘蛛,沿著網(wǎng)絡(luò)抓取自己的獵物(數(shù)據(jù))爬蟲指的是:向網(wǎng)站發(fā)起請(qǐng)求,獲取資源后分析并提取有用數(shù)據(jù)的程序;從技術(shù)層面來說就是 通過程序模擬瀏覽器請(qǐng)求站點(diǎn)的行為,把站點(diǎn)返回的HTML代碼/JSON數(shù)據(jù)/二進(jìn)制數(shù)據(jù)(圖片、視頻) 爬到本地,進(jìn)而提取自己需要的數(shù)據(jù),存放起來使用。
image
爬取某網(wǎng)站的基本信息 :
先以貓眼網(wǎng)站(http://maoyan.com/board/4)為例:
想從網(wǎng)站獲取的信息有:
電影名稱,演員作者,發(fā)布時(shí)間,評(píng)分
電影名稱:name
演員作者:star
發(fā)布時(shí)間:release_time
評(píng)分:scores
最關(guān)鍵的步驟如下:在網(wǎng)站中分別選中電影名稱;作者;發(fā)布時(shí)間;評(píng)分右鍵選擇檢查,會(huì)出現(xiàn)所示代碼然后復(fù)制下來,將該網(wǎng)頁源代碼打開,搜索相同字段,然后選擇出你需要的部分,通過pycharm代碼將你選擇的電影名稱;作者;發(fā)布時(shí)間;評(píng)分等爬取下來。
詳細(xì)的整體代碼如下:
import requests
import re
import time
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
}
def get_info(url):
res = requests.get(url,headers=headers)
names = re.findall('
stars = re.findall('
(.*?)
',res.text,re.S)release_times = re.findall('
上映時(shí)間:(.*?)
',res.text)scores = re.findall('
(.*?)(.*?)
',res.text)for name,star,release_time,score in zip(names,stars,release_times,scores):
print(name,star.strip(),release_time,score[0]+score[1])
if __name__ == '__main__':
urls = ['http://maoyan.com/board/4?offset={}'.format(str(i)) for i in range(0, 100, 10)]
for url in urls:
get_info(url)
time.sleep(0)
爬取后的信息很多,有一點(diǎn)亂,這就需要整理一下信息。
運(yùn)用pycharm與Excel相結(jié)合,通過pycharm建立Excel文件。
例如:建立一個(gè)姓名,性別的Excel的文件。
import csv
fp = open('C:/Users/lenovo/Desktop/text.csv','w',encoding='utf-8',newline='')
writer = csv.writer(fp)
writer .writerow(['name','sex'])
writer .writerow(['***','男'])
整理信息
運(yùn)用上面的例子,然后將爬取信息的信息整理到Excel文件夾中:
詳細(xì)代碼如下:
import requests
import re
import csv
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
}
def get_info(url):
res = requests.get(url,headers=headers)
names = re.findall('
stars = re.findall('
(.*?)
',res.text,re.S)release_times = re.findall('
上映時(shí)間:(.*?)
',res.text)scores = re.findall('
(.*?)(.*?)
',res.text)for name,star,release_time,score in zip(names,stars,release_times,scores):
print(name,star.strip(),release_time,score[0]+score[1])
writer.writerow([name, star.strip(), release_time, score[0] + score[1]])
if __name__ == '__main__':
fp = open('C:/Users/lenovo/Desktop/新建文件夾 (2)/python代碼/text.csv', 'w', encoding='utf-8', newline='')
writer = csv.writer(fp)
writer.writerow(['name','star','release_times','scores'])
urls = ['http://maoyan.com/board/4?offset={}'.format(str(i)) for i in range(0, 100, 10)]
for url in urls:
get_info(url)
如此一來就將貓眼視頻上的信息爬取了下來,然后我們還可以通過Excel進(jìn)行各種對(duì)比;選擇,挑選出最好的,等等一系列人們所需要的數(shù)據(jù)。
這就是最簡(jiǎn)單的python知識(shí)。后面我們將慢慢對(duì)python進(jìn)行解讀,以下僅供趣讀:
Python 是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語言。
Python 的設(shè)計(jì)具有很強(qiáng)的可讀性,相比其他語言經(jīng)常使用英文關(guān)鍵字,其他語言的一些標(biāo)點(diǎn)符號(hào),它具有比其他語言更有特色語法結(jié)構(gòu)。
Python 特點(diǎn)
易于學(xué)習(xí):Python有相對(duì)較少的關(guān)鍵字,結(jié)構(gòu)簡(jiǎn)單,和一個(gè)明確定義的語法,學(xué)習(xí)起來更加簡(jiǎn)單。
易于閱讀:Python代碼定義的更清晰。
易于維護(hù):Python的成功在于它的源代碼是相當(dāng)容易維護(hù)的。
一個(gè)廣泛的標(biāo)準(zhǔn)庫:Python的最大的優(yōu)勢(shì)之一是豐富的庫,跨平臺(tái)的,在UNIX,Windows和Macintosh兼容很好。
互動(dòng)模式:互動(dòng)模式的支持,您可以從終端輸入執(zhí)行代碼并獲得結(jié)果的語言,互動(dòng)的測(cè)試和調(diào)試代碼片斷。
可移植:基于其開放源代碼的特性,Python已經(jīng)被移植(也就是使其工作)到許多平臺(tái)。
可擴(kuò)展:如果你需要一段運(yùn)行很快的關(guān)鍵代碼,或者是想要編寫一些不愿開放的算法,你可以使用C或C++完成那部分程序,然后從你的Python程序中調(diào)用。
數(shù)據(jù)庫:Python提供所有主要的商業(yè)數(shù)據(jù)庫的接口。
GUI編程:Python支持GUI可以創(chuàng)建和移植到許多系統(tǒng)調(diào)用。
可嵌入: 你可以將Python嵌入到C/C++程序,讓你的程序的用戶獲得"腳本化"的能力。
大家一定要認(rèn)真對(duì)待,不能像 小C(作者)一樣,相信你們一定學(xué)的更好。
總結(jié)
以上是生活随笔為你收集整理的python爬虫模式_python爬虫的入门试炼的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我喜欢北京的柿子树
- 下一篇: Python学习13 ----Seabo