真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何正確的使用python爬蟲(chóng)-創(chuàng)新互聯(lián)

這篇文章給大家介紹如何正確的使用python爬蟲(chóng),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作過(guò)程中,需要針對(duì)客戶(hù)的行業(yè)特點(diǎn)、產(chǎn)品特性、目標(biāo)受眾和市場(chǎng)情況進(jìn)行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計(jì)方向。創(chuàng)新互聯(lián)還需要根據(jù)客戶(hù)的需求進(jìn)行功能模塊的開(kāi)發(fā)和設(shè)計(jì),包括內(nèi)容管理、前臺(tái)展示、用戶(hù)權(quán)限管理、數(shù)據(jù)統(tǒng)計(jì)和安全保護(hù)等功能。

基礎(chǔ)

爬蟲(chóng)的定義:定向抓取互聯(lián)網(wǎng)內(nèi)容(大部分為網(wǎng)頁(yè))、并進(jìn)行自動(dòng)化數(shù)據(jù)處理的程序。主要用于對(duì)松散的海量信息進(jìn)行收集和結(jié)構(gòu)化處理,為數(shù)據(jù)分析和挖掘提供原材料。

今日t條就是一只巨大的“爬蟲(chóng)”。

爬蟲(chóng)由URL庫(kù)、采集器、解析器組成。

流程

如果待爬取的url庫(kù)不為空,采集器會(huì)自動(dòng)爬取相關(guān)內(nèi)容,并將結(jié)果給到解析器,解析器提取目標(biāo)內(nèi)容后進(jìn)行寫(xiě)入文件或入庫(kù)等操作。

如何正確的使用python爬蟲(chóng)

代碼

第一步:寫(xiě)一個(gè)采集器

如下是一個(gè)比較簡(jiǎn)單的采集器函數(shù)。需要用到requests庫(kù)。
首先,構(gòu)造一個(gè)http的header,里面有瀏覽器和操作系統(tǒng)等信息。如果沒(méi)有這個(gè)偽造的header,可能會(huì)被目標(biāo)網(wǎng)站的WAF等防護(hù)設(shè)備識(shí)別為機(jī)器代碼并干掉。

然后,用requests庫(kù)的get方法獲取url內(nèi)容。如果http響應(yīng)代碼是200 ok,說(shuō)明頁(yè)面訪問(wèn)正常,將該函數(shù)返回值設(shè)置為文本形式的html代碼內(nèi)容。

如果響應(yīng)代碼不是200 ok,說(shuō)明頁(yè)面不能正常訪問(wèn),將函數(shù)返回值設(shè)置為特殊字符串或代碼。

import requests

def get_page(url):
	headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'}
	response = requests.get(url, headers= headers)
	if response.status_code == 200:
	  return response.text
	else:
		return 'GET HTML ERROR !'

第二步:解析器

解析器的作用是對(duì)采集器返回的html代碼進(jìn)行過(guò)濾篩選,提取需要的內(nèi)容。
作為一個(gè)14年忠實(shí)用戶(hù),當(dāng)然要用豆瓣舉個(gè)栗子 _

我們計(jì)劃爬取豆瓣排名TOP250電影的8個(gè)參數(shù):排名、電影url鏈接、電影名稱(chēng)、導(dǎo)演、上映年份、國(guó)家、影片類(lèi)型、評(píng)分。整理成字典并寫(xiě)入文本文件。

待爬取的頁(yè)面如下,每個(gè)頁(yè)面包括25部電影,共計(jì)10個(gè)頁(yè)面。

如何正確的使用python爬蟲(chóng)

在這里,必須要表?yè)P(yáng)豆瓣的前端工程師們,html標(biāo)簽排版非常工整具有層次,非常便于信息提取。

下面是“肖申克的救贖”所對(duì)應(yīng)的html代碼:(需要提取的8個(gè)參數(shù)用紅線(xiàn)標(biāo)注)

如何正確的使用python爬蟲(chóng)

根據(jù)上面的html編寫(xiě)解析器函數(shù),提取8個(gè)字段。該函數(shù)返回值是一個(gè)可迭代的序列。
我個(gè)人喜歡用re(正則表達(dá)式)提取內(nèi)容。8個(gè)(.*?)分別對(duì)應(yīng)需要提取的字段。

import re

def parse_page(html):
	pattern = re.compile('(.*?).*?.*?(.*?).*?.*?(.*?) .*?
(.*?) / (.*?) / (.*?)

.*?(.*?)' , re.S) items = re.findall(pattern , html) for item in items: yield {   'rank': item[0],   'href': item[1],   'name': item[2],   'director': item[3].strip()[4:],   'year': item[4].strip(),   'country': item[5].strip(),   'style': item[6].strip(),   'score': item[7].strip() }

提取后的內(nèi)容如下:

如何正確的使用python爬蟲(chóng)

整理成完整的代碼:(暫不考慮容錯(cuò))

import requests
import re
import json

def get_page(url):
	#采集器函數(shù)
	headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'}
	response = requests.get(url, headers= headers)
	if response.status_code == 200:
	  return response.text
	else:
		return 'GET HTML ERROR ! '


def parse_page(html):
	#解析器函數(shù)
	pattern = re.compile('(.*?).*?.*?(.*?).*?.*?(.*?) .*?
(.*?) / (.*?) / (.*?)

.*?(.*?)' , re.S) items = re.findall(pattern , html) for item in items: yield {   'rank': item[0],   'href': item[1],   'name': item[2],   'director': item[3].strip()[4:],   'year': item[4].strip(),   'country': item[5].strip(),   'style': item[6].strip(),   'score': item[7].strip() } def write_to_file(content): #寫(xiě)入文件函數(shù) with open('result.txt' , 'a' , encoding = 'utf-8') as file: file.write(json.dumps(content , ensure_ascii = False) + '\n') if __name__== "__main__": # 主程序 for i in range(10): url= 'https://movie.douban.com/top250?start='+ str(i*25)+ '&filter' for res in parse_page(get_page(url)): write_to_file(res)

非常簡(jiǎn)潔,非常符合python簡(jiǎn)單、高效的特點(diǎn)。

說(shuō)明:

需要掌握待爬取url的規(guī)律,才能利用for循環(huán)等操作自動(dòng)化處理。
前25部影片的url是https://movie.douban.com/top250?start=0&filter,第26-50部影片url是https://movie.douban.com/top250?start=25&filter。規(guī)律就在start參數(shù),將start依次設(shè)置為0、25、50、75。。。225,就能獲取所有頁(yè)面的鏈接。parse_page函數(shù)的返回值是一個(gè)可迭代序列,可以理解為字典的集合。運(yùn)行完成后,會(huì)在程序同目錄生成result.txt文件。內(nèi)容如下:

如何正確的使用python爬蟲(chóng)

關(guān)于如何正確的使用python爬蟲(chóng)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


當(dāng)前名稱(chēng):如何正確的使用python爬蟲(chóng)-創(chuàng)新互聯(lián)
文章鏈接:http://weahome.cn/article/gssgh.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部