python抓取需要掃微信登陸頁(yè)面
一,抓取情況描述
1.抓取的頁(yè)面需要登陸,以公司網(wǎng)頁(yè)為例,登陸網(wǎng)址https://app-ticketsys.hezongyun.com/index.php ,(該網(wǎng)頁(yè)登陸方式微信掃碼登陸)
2.需要抓取的內(nèi)容如下圖所示:
需要提取
工單對(duì)應(yīng)編號(hào),如TK-2960
工單發(fā)起時(shí)間,如2018-08-17 11:12:13
工單標(biāo)題內(nèi)容,如設(shè)備故障
工單正文內(nèi)容,如最紅框所示

二,網(wǎng)頁(yè)分析
1.按按Ctrl + Shift + I或者鼠標(biāo)右鍵點(diǎn)擊檢查進(jìn)入開(kāi)發(fā)人員工具。
可以看到頁(yè)面顯示如下:

主要關(guān)注點(diǎn)如上圖框住和劃線處
首先點(diǎn)擊網(wǎng)絡(luò),記住以下信息將用于代碼修改處。
Resquest URL:https: //app-ticketsys.hezongyun.com/index.php/ticket/ticket_list/init這個(gè)是需要爬取頁(yè)面的信息請(qǐng)求Menthod:GET餅干:用于需要登陸頁(yè)面User-Agent:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,類似Gecko)Chrome / 67.0.3396.62 Safari / 537.36
記住以上信息后粗略了解網(wǎng)頁(yè)樹(shù)形結(jié)構(gòu)用BeatifulSoup中SELEC怎么取出內(nèi)容
示例:的H1M1一段代碼如下:
html =“”“ <html> <head> <title>睡鼠的故事</ title> </ head> <body> <p class =”title“name =”dromouse“> <b>睡鼠的故事</ b > </ p> <p class =“story”>從前有三個(gè)小姐妹;他們的名字是 <a href =“http://example.com/elsie”class =“sister”id =“ link1“> <! - Elsie - > </a>, <a rel="external nofollow" class="sister" id="link2"> Lacie </a>和 <a href =“http://example.com/tillie”class =“sister”id =“l(fā)ink3”> Tillie </a>; 他們住在井底。</ p> <p class =“story”> ... </ p> “”“
如果我們喝湯得到了上面那段HTML的結(jié)構(gòu)提取內(nèi)容方法如下
1.通過(guò)標(biāo)簽名查找soup.select( '標(biāo)題'),如需要取出含有一個(gè)標(biāo)簽的內(nèi)容則soup.select( 'a')的
2.通過(guò)類名查找soup.select( 'CLASS_NAME ')如取出標(biāo)題的內(nèi)容則soup.select('。標(biāo)題')
3.通過(guò)ID名字查找soup.select( '#ID_NAME')如取出ID = LINK2的內(nèi)容則soup.select( '#LINK2')
上述元素名字可以利用左上角箭頭取出,如下圖

三,程序編寫(xiě)
# -*- coding:utf-8 -*-
import requests
import sys
import io
from bs4 import BeautifulSoup
import sys
import xlwt
import urllib,urllib2
import re
def get_text():
#登錄后才能訪問(wèn)的網(wǎng)頁(yè),這個(gè)就是我們?cè)趎etwork里查看到的Request URL
url = 'https://app-ticketsys.hezongyun.com/index.php/ticket/ticket_iframe/'
#瀏覽器登錄后得到的cookie,這個(gè)就是我們?cè)趎etwork里查看到的Coockie
cookie_str = r'ci_ticketsys_session=‘***********************************'
#把cookie字符串處理成字典
cookies = {}
for line in cookie_str.split(';'):
key, value = line.split('=', 1)
cookies[key] = value
#設(shè)置請(qǐng)求頭
headers = {'User-Agent':'Mozilla/5.0(Windows NT 10.0; Win64;x64)AppleWebKit/537.36 (KHTML, like Gecko)Chrome/67.0.3396.62 Safari/537.36'}
#在發(fā)送get請(qǐng)求時(shí)帶上請(qǐng)求頭和cookies
resp = requests.get(url, cookies = cookies,headers = headers)
soup = BeautifulSoup(resp.text,"html.parser")
print soup
上述代碼就能得到登陸網(wǎng)頁(yè)的HTML源碼,這個(gè)源碼呈一個(gè)樹(shù)形結(jié)構(gòu),接下來(lái)針對(duì)需求我們提取需要的內(nèi)容進(jìn)行提取
我們需要工單號(hào),對(duì)應(yīng)時(shí)間,對(duì)應(yīng)標(biāo)題

按箭頭點(diǎn)擊到對(duì)應(yīng)工單大塊,可以查詢到,所有的工單號(hào),工單發(fā)起時(shí)間,工單標(biāo)題均在<ul id =“ticket-list”>這個(gè)id下面

那么點(diǎn)開(kāi)一個(gè)工單結(jié)構(gòu),例如工單號(hào)ID = “4427” 下面我們需要知道工單號(hào),工單發(fā)起時(shí)間,工單內(nèi)容可以看到
1.工單內(nèi)容在H3標(biāo)簽下面
2.工單編號(hào)在類=“NUM”下面
3.工單發(fā)起時(shí)間在類= “時(shí)間” 下面
for soups in soup.select('#ticket-list'):
if len(soups.select('h3'))>0:
id_num = soups.select('.num')
star_time = soups.select('.time')
h3 = soups.select('h3')
print id_num,start_time,h3
總結(jié)
以上所述是小編給大家介紹的python抓取需要掃微信登陸頁(yè)面,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- python微信聊天機(jī)器人改進(jìn)版(定時(shí)或觸發(fā)抓取天氣預(yù)報(bào)、勵(lì)志語(yǔ)錄等,向好友推送)
- python抓取搜狗微信公眾號(hào)文章
- Python簡(jiǎn)單實(shí)現(xiàn)網(wǎng)頁(yè)內(nèi)容抓取功能示例
- Python實(shí)現(xiàn)簡(jiǎn)單網(wǎng)頁(yè)圖片抓取完整代碼實(shí)例
- python 3利用BeautifulSoup抓取div標(biāo)簽的方法示例
- Python爬蟲(chóng)實(shí)現(xiàn)網(wǎng)頁(yè)信息抓取功能示例【URL與正則模塊】
- python3實(shí)現(xiàn)抓取網(wǎng)頁(yè)資源的 N 種方法
- Python正則抓取新聞標(biāo)題和鏈接的方法示例
相關(guān)文章
Python辦公自動(dòng)化之定時(shí)郵件提醒和音視頻文件處理
這篇文章主要為大家詳細(xì)介紹了Python辦公自動(dòng)化中定時(shí)郵件提醒和音視頻文件處理的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),需要的小伙伴可以了解下2023-12-12
Python打開(kāi)指定網(wǎng)頁(yè)使用requests模塊爬蟲(chóng)示例詳解
這篇文章主要介紹了Python打開(kāi)指定網(wǎng)頁(yè)使用requests模塊爬蟲(chóng)的示例,Python?requests是一個(gè)常用的HTTP請(qǐng)求庫(kù),可以方便地向網(wǎng)站發(fā)送HTTP請(qǐng)求,并獲取響應(yīng)結(jié)果,requests模塊比urllib模塊更簡(jiǎn)潔,感興趣的朋友可以參考下2024-02-02
pyqt5+opencv?實(shí)現(xiàn)讀取視頻數(shù)據(jù)的方法
這篇文章主要介紹了pyqt5+opencv?實(shí)現(xiàn)讀取視頻數(shù)據(jù)的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01
Python統(tǒng)計(jì)時(shí)間內(nèi)的并發(fā)數(shù)代碼實(shí)例
這篇文章主要介紹了Python統(tǒng)計(jì)時(shí)間內(nèi)的并發(fā)數(shù)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
python如何實(shí)現(xiàn)int函數(shù)的方法示例
int()函數(shù)常用來(lái)把其他類型轉(zhuǎn)換為整數(shù),下面這篇文章主要給大家介紹了關(guān)于python如何實(shí)現(xiàn)int函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-02-02
Python OpenCV 圖像矯正的原理實(shí)現(xiàn)
這篇文章主要介紹了Python OpenCV 圖像矯正的原理實(shí)現(xiàn),檢測(cè)邊緣點(diǎn);以邊緣點(diǎn)作為輸入,采用Hough直線檢測(cè),檢測(cè)出最多點(diǎn)共線的四條直線,更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-07-07
python+Selenium自動(dòng)化測(cè)試——輸入,點(diǎn)擊操作
這篇文章主要介紹了python+Selenium自動(dòng)化測(cè)試——輸入,點(diǎn)擊操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03

