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
网友评论