Python(六十五)抓包及其简单解析

2022-02-24  本文已影响0人  Lonelyroots

1.分析摄图网

摄图网
搜素的业务场景:
1. 如果页面发生了刷新:那么我们先看地址栏
2. 如果页面没有发生刷新,那么进行抓包

1.简单的分析可以发现,我们通过关键字拼音可以获取到相应的界面,如彩蛋
2.随后我们发现,在博大精深的汉字中,我们对于关键字的处理方法不太可行
因为菜单和彩蛋同音,但菜单的路由是143555.html,并不是我们可以想到的

04_抓包及其简单解析/01_分析摄图网.py:

"""

摄图网
https://699pic.com/

搜素的业务场景:
    1. 如果页面发生了刷新:那么我们先看地址栏
    2. 如果页面没有发生刷新,那么进行抓包

1. 简单的分析可以发现,我们通过关键字拼音可以获取到相应的界面,如彩蛋
    https://699pic.com/tupian/caidan.html
2. 随后我们发现,在博大精深的汉字中,我们对于关键字的处理方法不太可行
    因为菜单和彩蛋同音,但菜单的路由是143555.html,并不是我们可以想到的

"""
import requests

word = input("请输入:")

proxie = {
    'http':'113.138.212.12:4231'
}

url = "https://699pic.com/search/getKwInfo?kw={}".format(word)

# response = requests.get(url,proxies=proxie)
# print(response.text)    # 输入菜单,返回的是JSON:{"kwid":"143555","pinyin":"143555"}

kwJson = requests.get(url,proxies=proxie).json()        # json(),自动将json字符串转换成Python dict
kw = kwJson['pinyin']

kw_url = "https://699pic.com/tupian/{}.html".format(kw)
print(kw_url)

2. xpinyin模块

04_抓包及其简单解析/02_xpinyin模块.py

"""

pip install xpinyin -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

"""
from xpinyin import Pinyin

p = Pinyin()        # 实例化

print(p.get_pinyin("上海"))       # shang-hai
print(p.get_pinyin("上海", tone_marks="marks"))       # 加声调shàng-hǎi
# 第二个参数,拼音与拼音的分割,默认是-
print(p.get_pinyin("上海",""))    # shanghai
print(p.get_pinyin("上海","~"))    # shang~hai

print("--------------")

print(p.get_initial("上"))       # S
print(p.get_initial("海"))       # H
# print(p.get_initial("上海"))       # 会报错,只能传一个字符TypeError: ord() expected a character, but string of length 2 found
print(p.get_initials("上海"))     # S-H
print(p.get_initials("上海",""))     # SH
print(p.get_initials("上海","~"))     # S~H

3. requests_html模块

04_抓包及其简单解析/03_requests_html模块.py:

from requests_html import HTMLSession
import requests

session = HTMLSession()     # 维持且保存

url = 'https://baidu.com'

response = session.get(url=url)     # 两者比较之后发现,requests_html模块自带了UA
response2 = requests.get(url=url)

# print(session.headers)
print(response.text)
print("======")
# print(response2.text)

4. 摄图网简单解析

04_抓包及其简单解析/04_摄图网简单解析.py:

from requests_html import HTMLSession

session = HTMLSession()

url = "https://699pic.com/tupian/143555.html"

response = session.get(url=url)
# print(response.html.links)      # 获取页面中所有的链接,仅显示部分
# print(response.html.absolute_links)      # 获取页面中所有的链接,自动将url转转换为绝对路径

imgList = response.html.xpath('//div[@class="list"]/a/@href')
for imgUrl in imgList:
    print(imgUrl)

titleList = response.html.xpath('//div[@class="list"]/a/@title')
for title in titleList:
    print(title)

文章到这里就结束了!希望大家能多多支持Python(系列)!六个月带大家学会Python,私聊我,可以问关于本文章的问题!以后每天都会发布新的文章,喜欢的点点关注!一个陪伴你学习Python的新青年!不管多忙都会更新下去,一起加油!

Editor:Lonelyroots

上一篇下一篇

猜你喜欢

热点阅读