当前位置: 首页 > news >正文

广州专业做网站公司有哪些正规职业技能培训机构

广州专业做网站公司有哪些,正规职业技能培训机构,西宁市解封最新消息,树状wordpress主题目录 一、此处需要安装第三方库: 二、抓包分析及Python代码 1、打开人生格言网(人生格言-人生格言大全_格言网)进行抓包分析 2、请求模块的代码 3、抓包分析人生格言界面 4、获取目录页中各种类型的人生格言链接 5、获取下一页的链接 5、获取人生…

目录

一、此处需要安装第三方库:

 二、抓包分析及Python代码 

         1、打开人生格言网(人生格言-人生格言大全_格言网)进行抓包分析

2、请求模块的代码

3、抓包分析人生格言界面

4、获取目录页中各种类型的人生格言链接

5、获取下一页的链接

5、获取人生格言的具体内容

6、 下载保存

 三、所有代码及具体步骤

1、具体步骤

2、所有代码如下:

3、运行结果

一、此处需要安装第三方库:

        在Pycharm平台终端或者命令提示符窗口中输入以下代码即可安装

pip install requests
pip install lxml
  •  requests模块为请求库
  • lxml库是一个HTML/XML的解析器,主要的功能是解析和提取 HTML/XML 数据

注: 此处需要用到lxml和正则表达式的知识,关于lxml库的使用和正则表达式,此处不进行详细说明,后续我将补充一篇博客来详细介绍。

 二、抓包分析及Python代码 

        1、打开人生格言网(人生格言-人生格言大全_格言网)进行抓包分析

        此处我们下载是文字,格言网是一个静态网页,人生格言的信息全都封装在源代码中,故此主要针对网页源代码进行分析爬取。不过我们首先要获取到网页内容的源代码,故此处采用requests模块的get方法即可。使用get方法,我们需要抓包分析获取url和user-agent即可

  • url和user-agent的获取方法:
  1. 打开格言网的人生格言网站
  2. 按下F12键,打开开发者界面
  3. 此时由于翻译页面没有数据传输,属于静态页面,开发者界面也就没有任何数据传输的情况。
  4. 刷新一下,在开发者界面点击Network,选择all,点击第一个html信息条目,在header视图中可以找到url信息和user-agent信息

url:

user-agent:

2、请求模块的代码

import requests
header = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Mobile Safari/537.36'}
url = 'http://www.mouxiao.com/renshenggeyan/index.html'
response = requests.get(url, headers=header)
print(response)

 3、抓包分析人生格言界面

在人生格言界面,可以看到:

  • 有多种类型的人生格言,点击其中一个即可跳转到具体的格言内容中
  • 有下一页的选项,点击下一页则跳转到下一页的多种类型的人生格言
  • 下面还有其他栏目导航

        这里,需要的是所有人生格言,即需要将人生格言栏目中的所有类型的格言全都下载下来。每种类型和下一页是通过跳转的方式,访问到具体的内容的。而跳转是通过链接的方式进行的,故只需要抓包分析,分析出链接所在位置,获取到这些链接。即可再通过requests请求模块,访问这些链接来下载具体的人生格言内容。

  • 抓包分析:

        采用以上方式,具体查找一下其他类型的链接所在位置。通过以上操作可以分析出链接都是藏标签<li>中的标签<a>中的href属性中且链接是以数字开头的,在此处采用xPath的方式,获取这些类型的所有xPath。

4、获取目录页中各种类型的人生格言链接

根据以上分析,获取目录页中各种类型的人生格言的链接代码如下:

import pprintimport requests
from lxml import etree
header = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Mobile Safari/537.36'}
index_url = 'http://www.mouxiao.com/renshenggeyan/index.html'
r = requests.get(index_url,headers=header)
# 由于requests模块会将获取的网页源代码进行自动编码,此处我们不需要编码。
# 故采用apparent_encoding方法,禁止requests模块自动编码。
r.encoding = r.apparent_encoding
# 采用xpath的方式定位获取链接所在位置
html = etree.HTML(r.text)
links = html.xpath('//ul[@class="readers-list"]//a/@href')
# 采用格式化打印,打印一下links内容
pprint.pprint(links)

运行结果如下(部分图):

        根据上面的抓包分析,我们需要的链接是以数字开头的,但运行结果中却出现了大量不以数字开头的链接。这是为什么?继续抓包分析:

        我们发现栏目导航中的人生格言的链接所在位置跟上面抓包分析的多种类型的人生格言的链接所在位置是一致的。所以使用xPath定位链接时,把栏目导航中的链接也定位到了,但我们不需要栏目导航中的链接。根据前面分析,可知我们需要的链接是以数字开头的。则,可以采用正则表达式,筛选出所需的链接。代码如下:

import pprint
import reimport requests
from lxml import etree
header = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Mobile Safari/537.36'}
index_url = 'http://www.mouxiao.com/renshenggeyan/index.html'
r = requests.get(index_url,headers=header)
# 由于requests模块会将获取的网页源代码进行自动编码,此处我们不需要编码。
# 故采用apparent_encoding方法,禁止requests模块自动编码。
r.encoding = r.apparent_encoding
# 采用xpath的方式定位获取链接所在位置
html = etree.HTML(r.text)
links = html.xpath('//ul[@class="readers-list"]//a/@href')
# 要匹配所有以数字开头,后面跟 '.html' 的元素,可以遍历列表
matched_links = []
for link in links:# 采用正则表达式筛选出我们所需要的链接,将其保存到matched_links中if re.findall(r'^\d+\.html', link):matched_links.append(link)
# 采用格式化打印,打印一下links内容
pprint.pprint(matched_links)

结果如下:

此处,成功获取到所需要的目录页中各种类型的人生格言的链接了。(非常开心!!!)

 5、获取下一页的链接

        根据上面分析,因为点击下一页跳转的出现的界面还有其他类型的人生格言,故下一页也需要获取其链接。因为,这样就可以通过下一页,来继续获取根据上面的抓包方式,可以定位到下一页的链接所在位置。通过xPath的方式,可以定位获取得到。

 代码如下:

# 封装成一个函数,输入当前页面的url,返回下一页的url
def get_nextpage(url):#请求当前网页的源代码r = requests.get(url, headers=header)# 拒绝requests的自动编码,保留源代码r.encoding = r.apparent_encoding# 定位到下一页的url地址html = etree.HTML(r.text)next_page = html.xpath('//div[@class="maike"]//p[@class="p"]//a/@href')[3]# 因为所获取的下一页地址是相对地址,故进行补全next_page = 'http://www.mouxiao.com/renshenggeyan/'+ next_page# 如果下一页地址和当前页地址不相等,则将下一页地址返回if next_page != url:return next_page

5、获取人生格言的具体内容

        当点击进入一个类型的人生格言,我们会进入到该类型的具体人生格言内容。

对其抓包分析:

        据此,我们定位到了标题和具体人生格言的所在网页源代码的位置。采用xPath方式,进行定位。代码如下:

# 封装成一个函数,输入具体人生格言页的地址,获取其具体的人生格言和标题
def get_content(url):# 请求当前网页的源代码r = requests.get(url,headers=header)# 拒绝requests的自动编码,保留源代码r.encoding = r.apparent_encoding# 解析源代码提取具体格言内容和标题# 获取网页源代码html = etree.HTML(r.text)# 获取格言内容content = html.xpath('//div[@class="maike"]/p[@class="p"]/text()')# 使用 join() 方法将列表中的元素用换行符连接起来content = '\n'.join(content)# 获取标题title = html.xpath('//div[@class="maike"]/h1[@class="title_l"]/text()')[0]return title,content

6、 下载保存

        根据以上内容,已经获取到了人生格言的具体内容和标题的函数--get_content。只需要将具体人生格言页的链接输入进去,调用get_content函数,采用open方法即可进行下载保存。

        title, content = get_content(link1)with open(f'格言/{title}.txt','w',encoding='utf-8') as f:f.write('\t'+title + '\n\n')f.write(content)print(f'已下载...{title}')

 三、所有代码及具体步骤

1、具体步骤

1、获取格言页网页源代码
2、提取格言内容 
3、获取目录页网页源代码
4、解析目录页,提取链接(各种类型的人生格言链接和下一页链接)
5、下载并保存所有格言

2、所有代码如下:

import re
import requests
from lxml import etree
# 获取user-agent,用于身份识别
header = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Mobile Safari/537.36'}
# 1、获取具体格言内容和标题
# 封装成一个函数,输入具体人生格言页的地址,获取其具体的人生格言和标题
def get_content(url):# 请求当前网页的源代码r = requests.get(url,headers=header)# 拒绝requests的自动编码,保留源代码r.encoding = r.apparent_encoding# 解析源代码提取具体格言内容和标题# 获取网页源代码html = etree.HTML(r.text)# 获取格言内容content = html.xpath('//div[@class="maike"]/p[@class="p"]/text()')# 使用 join() 方法将列表中的元素用换行符连接起来content = '\n'.join(content)# 获取标题title = html.xpath('//div[@class="maike"]/h1[@class="title_l"]/text()')[0]# 返回标题和内容return title,content
# 当前页面
index_url = 'http://www.mouxiao.com/renshenggeyan/index.html'
# 2、获取各种类型的人生格言链接并下载其具体人生格言内容和标题
# 输入当前人生格言的目录页地址,获取各种类型的人生格言链接并下载其具体人生格言内容和标题
def pageupload_play(index_url):# 请求当前网页的源代码r = requests.get(index_url,headers=header)# 由于requests模块会将获取的网页源代码进行自动编码,此处我们不需要编码。# 故采用apparent_encoding方法,禁止requests模块自动编码。r.encoding = r.apparent_encoding# 采用xpath的方式定位获取链接所在位置html = etree.HTML(r.text)links = html.xpath('//ul[@class="readers-list"]//a/@href')# 要匹配所有以数字开头,后面跟 '.html' 的元素,可以遍历列表matched_links = []for link in links:# 采用正则表达式筛选出我们所需要的链接,将其保存到matched_links中if re.findall(r'^\d+\.html', link):matched_links.append(link)# 遍历每个类型人生格言的具体人生格言内容和标题,对其进行下载for link in matched_links:# link中获取的链接是相对地址,需要补全前面的地址link1 = 'http://www.mouxiao.com/renshenggeyan/'+link# 调用get_content方法下载内容和标题并保存到本地title, content = get_content(link1)with open(f'格言/{title}.txt','w',encoding='utf-8') as f:f.write('\t'+title + '\n\n')f.write(content)print(f'已下载...{title}')
# 3、获取下一页的地址
# 封装成一个函数,输入当前页面的url,返回下一页的url
def get_nextpage(url):#请求当前网页的源代码r = requests.get(url, headers=header)# 拒绝requests的自动编码,保留源代码r.encoding = r.apparent_encoding# 定位到下一页的url地址html = etree.HTML(r.text)next_page = html.xpath('//div[@class="maike"]//p[@class="p"]//a/@href')[3]# 因为所获取的下一页地址是相对地址,故进行补全next_page = 'http://www.mouxiao.com/renshenggeyan/'+ next_page# 如果下一页地址和当前页地址不相等,则将下一页地址返回if next_page != url:return next_page
# 4、将以上函数排放好顺序进行调用,下载人生格言的全部内容及标题
n = 1
while 1:print(f"正在下载第{n}页...")print("下载地址为:"+index_url)pageupload_play(index_url)page = get_nextpage(index_url)index_url = pageif index_url==None:breakn+=1

 3、运行结果


文章转载自:
http://rumanian.c7630.cn
http://salford.c7630.cn
http://defeatist.c7630.cn
http://dysbasia.c7630.cn
http://ebro.c7630.cn
http://coniine.c7630.cn
http://trabeated.c7630.cn
http://camelry.c7630.cn
http://incommunicative.c7630.cn
http://trochus.c7630.cn
http://humorlessness.c7630.cn
http://intelsat.c7630.cn
http://incog.c7630.cn
http://trihydroxy.c7630.cn
http://chromophotograph.c7630.cn
http://dwindle.c7630.cn
http://alexbow.c7630.cn
http://shadowy.c7630.cn
http://sisyphean.c7630.cn
http://telecom.c7630.cn
http://chrysolite.c7630.cn
http://grueling.c7630.cn
http://profiteer.c7630.cn
http://octahedra.c7630.cn
http://lecithal.c7630.cn
http://conferva.c7630.cn
http://yaffil.c7630.cn
http://patronym.c7630.cn
http://apomorphine.c7630.cn
http://silures.c7630.cn
http://demonologist.c7630.cn
http://maja.c7630.cn
http://tentaculiform.c7630.cn
http://manuka.c7630.cn
http://otologist.c7630.cn
http://cantata.c7630.cn
http://broncho.c7630.cn
http://adipocellulose.c7630.cn
http://callboard.c7630.cn
http://paba.c7630.cn
http://hamster.c7630.cn
http://planometer.c7630.cn
http://crankle.c7630.cn
http://catchwork.c7630.cn
http://unreclaimable.c7630.cn
http://eyetooth.c7630.cn
http://dissymmetry.c7630.cn
http://gyrocompass.c7630.cn
http://discrown.c7630.cn
http://distensibility.c7630.cn
http://psytocracy.c7630.cn
http://toiler.c7630.cn
http://explanation.c7630.cn
http://hussite.c7630.cn
http://dumpy.c7630.cn
http://carbonylic.c7630.cn
http://shizuoka.c7630.cn
http://spick.c7630.cn
http://hubbub.c7630.cn
http://porphobilinogen.c7630.cn
http://troupe.c7630.cn
http://glycosaminoglycan.c7630.cn
http://innumerable.c7630.cn
http://caladium.c7630.cn
http://tritagonist.c7630.cn
http://hale.c7630.cn
http://atrato.c7630.cn
http://knobkerrie.c7630.cn
http://knottiness.c7630.cn
http://hindrance.c7630.cn
http://eyas.c7630.cn
http://jules.c7630.cn
http://hilary.c7630.cn
http://montanian.c7630.cn
http://solifidianism.c7630.cn
http://peahen.c7630.cn
http://silence.c7630.cn
http://recalcitrance.c7630.cn
http://unbuckle.c7630.cn
http://enepidermic.c7630.cn
http://polemical.c7630.cn
http://scalar.c7630.cn
http://option.c7630.cn
http://physiognomist.c7630.cn
http://cacanny.c7630.cn
http://gabby.c7630.cn
http://hexapartite.c7630.cn
http://spoliative.c7630.cn
http://f2f.c7630.cn
http://plural.c7630.cn
http://conjunctiva.c7630.cn
http://pacifiable.c7630.cn
http://ergotoxine.c7630.cn
http://solid.c7630.cn
http://doings.c7630.cn
http://clamper.c7630.cn
http://pauperization.c7630.cn
http://queenlike.c7630.cn
http://pilch.c7630.cn
http://facet.c7630.cn
http://www.zhongyajixie.com/news/89473.html

相关文章:

  • 网站建设 策划方案书网站发布与推广
  • 网站首页代码怎么做爱站查询
  • 河北建设网网站百度网址大全怎么设为主页
  • 哪些网站是用wordpress搭建的排名轻松seo 网站
  • h5 php mysql网站开发一个完整的营销策划方案范文
  • 前端开发工程师是什么专业seo外链资源
  • 物流信息平台网站建设企业seo案例
  • 全国最大装修网站排名广告牌
  • 专业做书画推广的网站网页搜索关键词
  • 网站推广技术新闻投稿平台
  • 广州各类外贸网站市场营销互联网营销
  • h5免费制作平台火蚁邀请函怎么写杭州seo排名收费
  • 网站平面设计培训小程序开发哪家更靠谱
  • 创建网站平台网站seo策划方案
  • 怎么向google提交网站免费创建属于自己的网站
  • 网站建设市场分析2015刷外链工具
  • 自己做网站和外包品牌推广工作内容
  • 网站建设的设备长沙网络推广外包费用
  • 手机平台网站开发广告联盟平台哪个好
  • 龙岩做网站开发哪家厉害太原网站优化
  • 网站策划的内容网页优化公司
  • 安装wordpress主题网站关键词优化办法
  • 购物网站的图片轮播怎么做快速排名怎么做
  • 沈阳建设工程管理中心上海百度seo
  • 青白江区网站开发招聘百度热搜榜第一
  • 做网站和自媒体哪个好大连seo网站推广
  • 无忧网站模板辽宁网站建设
  • 专做艺术圈的网站seo技术代理
  • 天津市精神文明建设委员会网站网站排名优化外包
  • wordpress自定义字段面板昆明seo工资