中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站背景視頻是怎么做的新聞聯(lián)播今日新聞

網(wǎng)站背景視頻是怎么做的,新聞聯(lián)播今日新聞,制作網(wǎng)站最新工具,wordpress生成推廣鏈接地址大家好&#xff0c;我是東眠的魚(yú)&#xff0c;專注原創(chuàng)&#xff0c;致力于用淺顯易懂的語(yǔ)言分享爬蟲(chóng)、數(shù)據(jù)分析及可視化等干貨&#xff0c;希望人人都能學(xué)到新知識(shí)。<文末附帶精品籽料哦&#xff0c;也可以和博主一起學(xué)Python呀&#xff01;> 項(xiàng)目背景 有同學(xué)自學(xué)爬蟲(chóng)時(shí)…

大家好,我是東眠的魚(yú),專注原創(chuàng),致力于用淺顯易懂的語(yǔ)言分享爬蟲(chóng)、數(shù)據(jù)分析及可視化等干貨,希望人人都能學(xué)到新知識(shí)。<文末附帶精品籽料哦,也可以和博主一起學(xué)Python呀!>

項(xiàng)目背景

有同學(xué)自學(xué)爬蟲(chóng)時(shí),發(fā)現(xiàn)翻頁(yè)的時(shí)候,url一直不變。其實(shí)他爬取的是較高難度的網(wǎng)頁(yè)——?jiǎng)討B(tài)網(wǎng)頁(yè)。今天給大家介紹動(dòng)態(tài)網(wǎng)頁(yè)的爬蟲(chóng)!

AJAX動(dòng)態(tài)加載網(wǎng)頁(yè)

一、什么是動(dòng)態(tài)網(wǎng)頁(yè)

所謂的動(dòng)態(tài)網(wǎng)頁(yè),是指跟靜態(tài)網(wǎng)頁(yè)相對(duì)的一種網(wǎng)頁(yè)編程技術(shù)。靜態(tài)網(wǎng)頁(yè),隨著html代碼的生成,頁(yè)面的內(nèi)容和顯示效果就基本上不會(huì)發(fā)生變化了——除非你修改頁(yè)面代碼。而動(dòng)態(tài)網(wǎng)頁(yè)則不然,頁(yè)面代碼雖然沒(méi)有變,但是顯示的內(nèi)容卻是可以隨著時(shí)間、環(huán)境或者數(shù)據(jù)庫(kù)操作的結(jié)果而發(fā)生改變的。——來(lái)源百度百科

動(dòng)態(tài)網(wǎng)頁(yè)具有減少工作量、內(nèi)容更新快、可完成功能多等特點(diǎn),被很多公司所采用,比如狗東、某寶、某瓣、某乎等等。

二、什么是AJAX

隨著人們對(duì)動(dòng)態(tài)網(wǎng)頁(yè)加載速度的要求越來(lái)越高,AJAX技術(shù)應(yīng)運(yùn)而生并成為許多站點(diǎn)的首選。AJAX是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù),通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。這意味著在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,可以對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新。

三、如何爬取AJAX動(dòng)態(tài)加載網(wǎng)頁(yè)

1. 解析接口

只要是有數(shù)據(jù)發(fā)送過(guò)來(lái),那肯定是有發(fā)送到服務(wù)器的請(qǐng)求的吧。我們只需找出它悄悄加載出的頁(yè)面的真實(shí)請(qǐng)求即可。特點(diǎn):爬取速度快,爬取的數(shù)據(jù)干凈,有些網(wǎng)站解析難度較大。

2. Selenium

selenium是什么呢?它本來(lái)是個(gè)自動(dòng)化測(cè)試工具,但是被廣泛的用戶拿去爬蟲(chóng)了。它是一個(gè)工具,這個(gè)工具可以用代碼操作瀏覽器,比如控制瀏覽器的下滑、模擬鼠標(biāo)點(diǎn)擊等。特點(diǎn):代碼較簡(jiǎn)單,爬取速度慢,容易被封ip。

項(xiàng)目實(shí)操

怎么說(shuō)了那么多理論,說(shuō)實(shí)話也不想那么啰嗦??墒前?#xff0c;這些東西經(jīng)常會(huì)被問(wèn)到,干脆直接寫(xiě)下來(lái),下次還有人問(wèn)就直接把這篇文章發(fā)給他,一勞永逸!

我們拿一個(gè)法院信息公示網(wǎng)頁(yè)舉例:

那我們就開(kāi)啟爬蟲(chóng)的正確姿勢(shì)吧,先用解析接口的方法來(lái)寫(xiě)爬蟲(chóng)。

首先,找到真實(shí)請(qǐng)求。右鍵檢查,點(diǎn)擊Network,選中XHR,刷新網(wǎng)頁(yè),選擇Name列表中的jsp文件。沒(méi)錯(cuò),就這么簡(jiǎn)單,真實(shí)請(qǐng)求就藏在里面。

?

我們?cè)僮屑?xì)看看這個(gè)jsp,這簡(jiǎn)直是個(gè)寶啊。有真實(shí)請(qǐng)求url,有請(qǐng)求方法post,有Headers,還有Form Data,而From Data表示給url傳遞的參數(shù),通過(guò)改變參數(shù),咱們就可以獲得數(shù)據(jù)!

我們?cè)僮屑?xì)看看這些參數(shù),pagesnum參數(shù)不就是代表頁(yè)數(shù)嘛!我們嘗試點(diǎn)擊翻頁(yè),發(fā)現(xiàn)只有pagesnum參數(shù)會(huì)變化。

既然發(fā)現(xiàn)了它,那就趕緊抓住它。打開(kāi)PyCharm,導(dǎo)入了爬蟲(chóng)所需的庫(kù)。

1from urllib.parse import urlencode  
2import csv  
3import random  
4import requests  
5import traceback  
6from time import sleep  
7from lxml import etree    #lxml為第三方網(wǎng)頁(yè)解析庫(kù),強(qiáng)大且速度快  

構(gòu)造真實(shí)請(qǐng)求,添加Headers。

 1base_url = 'http://www.hshfy.sh.cn/shfy/gweb2017/ktgg_search_content.jsp?'  #這里要換成對(duì)應(yīng)Ajax請(qǐng)求中的鏈接  2  3headers = {  4    'Connection': 'keep-alive',  5    'Accept': '*/*',  6    'X-Requested-With': 'XMLHttpRequest',  7    'User-Agent': '你的User-Agent',  8    'Origin': 'http://www.hshfy.sh.cn',  9    'Referer': 'http://www.hshfy.sh.cn/shfy/gweb2017/ktgg_search.jsp?zd=splc',  
10    'Accept-Language': 'zh-CN,zh;q=0.9',  
11    'Content-Type': 'application/x-www-form-urlencoded',  
12    'Cookie': '你的Cookie'  
13}

構(gòu)建get_page函數(shù),自變量為page,也就是頁(yè)數(shù)。以字典類型創(chuàng)建表單data,用post方式去請(qǐng)求網(wǎng)頁(yè)數(shù)據(jù)。這里要注意要對(duì)返回的數(shù)據(jù)解碼,編碼為’gbk’,否則返回的數(shù)據(jù)會(huì)亂碼!另外我還加了異常處理優(yōu)化了下,以防意外發(fā)生。

 1def get_page(page):  2    n = 3  3    while True:  4        try:  5            sleep(random.uniform(1, 2))  # 隨機(jī)出現(xiàn)1-2之間的數(shù),包含小數(shù)  6            data = {  7                'yzm': 'yxAH',  8                'ft':'',  9                'ktrqks': '2020-05-22',  
10                'ktrqjs': '2020-06-22',  
11                'spc':'',  
12                'yg':'',  
13                'bg':'',  
14                'ah':'',  
15                'pagesnum': page  
16            }  
17            url = base_url + urlencode(data)  
18            print(url)  
19            try:  
20                response = requests.request("POST",url, headers = headers)  
21                #print(response)  
22                if response.status_code == 200:  
23                    re = response.content.decode('gbk')  
24                    # print(re)  
25                    return re  # 解析內(nèi)容  
26            except requests.ConnectionError as e:  
27                print('Error', e.args)  # 輸出異常信息  
28        except (TimeoutError, Exception):  
29            n -= 1  
30            if n == 0:  
31                print('請(qǐng)求3次均失敗,放棄此url請(qǐng)求,檢查請(qǐng)求條件')  
32                return  
33            else:  
34                print('請(qǐng)求失敗,重新請(qǐng)求')  
35                continue

構(gòu)建parse_page函數(shù),對(duì)返回的網(wǎng)頁(yè)數(shù)據(jù)進(jìn)行解析,用Xpath提取所有字段內(nèi)容,保存為csv格式。有人會(huì)問(wèn)為這么喜歡用Xpath,因?yàn)楹?jiǎn)單好用啊!!!

 1def parse_page(html):  2    try:  3        parse = etree.HTML(html)  # 解析網(wǎng)頁(yè)  4        items = parse.xpath('//*[@id="report"]/tbody/tr')  5        for item in items[1:]:  6            item = {  7                'a': ''.join(item.xpath('./td[1]/font/text()')).strip(),  8                'b': ''.join(item.xpath('./td[2]/font/text()')).strip(),  9                'c': ''.join(item.xpath('./td[3]/text()')).strip(),  
10                'd': ''.join(item.xpath('./td[4]/text()')).strip(),  
11                'e': ''.join(item.xpath('./td[5]/text()')).strip(),  
12                'f': ''.join(item.xpath('./td[6]/div/text()')).strip(),  
13                'g': ''.join(item.xpath('./td[7]/div/text()')).strip(),  
14                'h': ''.join(item.xpath('./td[8]/text()')).strip(),  
15                'i': ''.join(item.xpath('./td[9]/text()')).strip()  
16            }  
17            #print(item)  
18            try:  
19                with open('./law.csv', 'a', encoding='utf_8_sig', newline='') as fp:  
20                    # 'a'為追加模式(添加)  
21                    # utf_8_sig格式導(dǎo)出csv不亂碼  
22                    fieldnames = ['a', 'b', 'c', 'd', 'e','f','g','h','i']  
23                    writer = csv.DictWriter(fp,fieldnames)  
24                    writer.writerow(item)  
25            except Exception:  
26                print(traceback.print_exc())  #代替print e 來(lái)輸出詳細(xì)的異常信息  
27    except Exception:  
28        print(traceback.print_exc())

最后,遍歷一下頁(yè)數(shù),調(diào)用一下函數(shù)。OK,搞定!

1    for page in range(1,5):  #這里設(shè)置想要爬取的頁(yè)數(shù)  
2        html = get_page(page)  
3        #print(html)  
4        print("第" + str(page) + "頁(yè)提取完成")  

我們來(lái)看一下最終效果:

結(jié) 語(yǔ)

總結(jié)一下,對(duì)于AJAX動(dòng)態(tài)加載網(wǎng)頁(yè)爬蟲(chóng),一般就兩種方式:解析接口;Selenium。這次就先介紹了解析接口方式,個(gè)人還是推薦解析接口的方式,如果解析的是json數(shù)據(jù),就更好爬了。實(shí)在沒(méi)辦法了再用Selenium吧。

最后 如果你對(duì)Python感興趣的話,可以試試我整理的這份Python全套學(xué)習(xí)資料,【點(diǎn)擊這里】領(lǐng)取!

包括:Python激活碼+安裝包、Python web開(kāi)發(fā),Python爬蟲(chóng),Python數(shù)據(jù)分析,人工智能、自動(dòng)化辦公等學(xué)習(xí)教程。帶你從零基礎(chǔ)系統(tǒng)性的學(xué)好Python!
Python所有方向的學(xué)習(xí)路線圖,清楚各個(gè)方向要學(xué)什么東西
100多節(jié)Python課程視頻,涵蓋必備基礎(chǔ)、爬蟲(chóng)和數(shù)據(jù)分析
100多個(gè)Python實(shí)戰(zhàn)案例,學(xué)習(xí)不再是只會(huì)理論
華為出品獨(dú)家Python漫畫(huà)教程,手機(jī)也能學(xué)習(xí)
歷年互聯(lián)網(wǎng)企業(yè)Python面試真題,復(fù)習(xí)時(shí)非常方便******

在這里插入圖片描述

http://m.risenshineclean.com/news/59950.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)叫什么軟件seo優(yōu)化費(fèi)用
  • wordpress toc長(zhǎng)沙seo優(yōu)化哪家好
  • 貴陽(yáng)做網(wǎng)站好的公司有哪些今天的新聞 最新消息
  • wordpress 空兩格沈陽(yáng)seo優(yōu)化排名公司
  • 今日上海大事件網(wǎng)站seo關(guān)鍵詞設(shè)置
  • 誰(shuí)家的網(wǎng)站做的比較好色盲測(cè)試圖片60張
  • 集團(tuán)網(wǎng)站建設(shè)新聞seo長(zhǎng)尾關(guān)鍵詞排名
  • 有哪些公司的網(wǎng)站做的比較好公眾號(hào)如何推廣運(yùn)營(yíng)
  • 青島找網(wǎng)站建設(shè)公司好5000元網(wǎng)站seo推廣
  • b2c商城網(wǎng)站常用的搜索引擎有哪些
  • 高端建筑物圖片紹興百度seo
  • 寧波男科醫(yī)院哪家好哈爾濱優(yōu)化網(wǎng)站公司
  • 廣東網(wǎng)站建設(shè)怎么選網(wǎng)站優(yōu)化策劃書(shū)
  • 一個(gè)網(wǎng)站要怎么做的2022智慧樹(shù)互聯(lián)網(wǎng)與營(yíng)銷創(chuàng)新
  • 服裝公司網(wǎng)站建設(shè)開(kāi)題報(bào)告福州網(wǎng)絡(luò)營(yíng)銷推廣公司
  • 宜昌微網(wǎng)站建設(shè)微信推廣鏈接怎么制作
  • 政府網(wǎng)站建設(shè)評(píng)分標(biāo)準(zhǔn)網(wǎng)站建設(shè)優(yōu)化的技巧
  • 蘇州做網(wǎng)站優(yōu)化網(wǎng)站關(guān)鍵詞怎么快速上排名
  • 杭州濱江網(wǎng)站建設(shè)杭州網(wǎng)站關(guān)鍵詞排名優(yōu)化
  • 開(kāi)發(fā)一個(gè)物流app需要多少錢(qián)優(yōu)化資源配置
  • flash網(wǎng)站的制作網(wǎng)頁(yè)制作
  • 小程序搭建賺錢(qián)是真的嗎南京seo報(bào)價(jià)
  • word文檔做網(wǎng)站如何推廣seo
  • java 開(kāi)發(fā)手機(jī)網(wǎng)站開(kāi)發(fā)莆田seo推廣公司
  • 創(chuàng)業(yè)做網(wǎng)站需要哪些必備條件小程序seo
  • 響應(yīng)式企業(yè)網(wǎng)站后臺(tái)管理系統(tǒng)網(wǎng)絡(luò)推廣公司運(yùn)作
  • 企業(yè)網(wǎng)站建設(shè)亮點(diǎn)百度開(kāi)戶推廣多少錢(qián)
  • 句容做網(wǎng)站業(yè)務(wù)員用什么軟件找客戶
  • 攝影工作室網(wǎng)站模板網(wǎng)絡(luò)優(yōu)化工程師主要負(fù)責(zé)什么工作
  • 人是用什么做的視頻網(wǎng)站嗎浙江網(wǎng)絡(luò)推廣