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

网络服务器施工方案夫唯seo教程

网络服务器施工方案,夫唯seo教程,衢州网站建设企业,php网站开发 vip目录 前一章博客 前言 主函数的代码实现 逐行代码解析 获取链接 获取标题 获取网页源代码 获取各个文章的链接 函数的代码 导入库文件 获取文章的标题 获取文章的源代码 提取文章目录的各个文章的链接 总代码 下一章内容 前一章博客 用python从零开始做一个最简单…

目录

前一章博客

前言

主函数的代码实现

逐行代码解析

获取链接

获取标题

获取网页源代码

获取各个文章的链接

函数的代码

导入库文件

获取文章的标题

获取文章的源代码

提取文章目录的各个文章的链接

总代码

下一章内容


前一章博客

用python从零开始做一个最简单的小说爬虫带GUI界面(1/3)_木木em哈哈的博客-CSDN博客而且当时的爬虫代码有许多问题但是最近学了PyQt5想着搞个带界面的爬虫玩玩那就啥也不说开搞!!!https://blog.csdn.net/mumuemhaha/article/details/132394257?spm=1001.2014.3001.5501

前言

前一章博客我们讲了怎么通过PyQt5来制作图形化界面,并且进行一些基本设置

接下来两章我们主要讲核心爬虫代码的实现

主函数的代码实现

 前一章中的代码

self.Button_run.clicked.connect(self.F_run)

代表点击按钮执行F_run函数(注意这里不要打括号)

那么我们就需要定义这个函数

思路大概就是这样

    def F_run(self):link_1=self.line_link.text()title_1=F_gettitle(link_1)self.text_result.setText(f"标题获取成功——{title_1}")# file_1=open(f'{title_1}.txt',mode='w',encoding='utf-8  ')test_1=F_getyuan(link_1)self.text_result.setText("提取源代码成功")time.sleep(1)search_1=F_searchlink(test_1)self.text_result.append("提取文章链接成功")pachong(search_1,title_1)

逐行代码解析

获取链接

首先通过

self.line_link.text()

命令获取在输入框中输入的链接

并且把它赋值到link_1中

获取标题

同时我会通过爬取网页链接的源代码进行提取关键字获得文章的标题

也就是小说的名字

title_1=F_gettitle(link_1)

获取网页源代码

爬取小说文章目录网页的源代码并且赋值为test_1(用于后续提取各个文章的链接)

test_1=F_getyuan(link_1)

获取各个文章的链接

search_1=F_searchlink(test_1)

把得到的源代码进行提取筛选获得各个文章的链接

其中self.text_result.setText以及self.text_result.append是在下面红圈中显示的东西

(美观用,可以不加)

函数的代码

这里为了不让代码过于长,我自己有单独新建了两个python文件用于存放python函数

导入库文件

import requests
import re
import numpy as np
from lxml import etree

  request用于网络请求

re以及lxml用于过滤源代码的信息

而numpy用于存储元素

获取文章的标题

def F_gettitle(link_0):head_qb={'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36'}test_1=requests.get(url=link_0,headers=head_qb)test_yuan=test_1.textdom=etree.HTML(test_yuan)test_2=dom.xpath('/html/body/article[1]/div[2]/div[2]/h1/text()')return test_2[0]

很简单的一个的结构

由requests来获取源代码

之后用lxml中的tree来筛选源代码

(用xpath路径时最后要加text()输出文本形式,不然出不了源代码)

xpath路径可以通过按f12控制台来提取

获取文章的源代码

应该很好理解,就直接写代码了

def F_getyuan(link_1):head_qb={'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36'}test_1=requests.get(url=link_1,headers=head_qb)test_yuan=test_1.texttest_yuan=str(test_yuan)return test_yuan

提取文章目录的各个文章的链接

def F_searchlink(link_2):re_1='<a id="haitung" href="(.*?)" rel="chapter">'re_1=re.compile(re_1)link_3=re.findall(re_1,link_2)link_max=np.array([])for link_1 in link_3:link_4=f'http://www.biquge66.net{link_1}'link_max=np.append(link_max,link_4)return link_max

这里我直接用re库的正则来进行匹配了匹配的链接

注意由于匹配的链接不是完整链接

所以还需要进行拼接

 拼接完成后便可以直接打开

在这里我先存储到数组中方便之后爬取各个文章的源代码

然后进行返回

总代码

main.py

import sys
# PyQt5中使用的基本控件都在PyQt5.QtWidgets模块中
from PyQt5.QtWidgets import QApplication, QMainWindow
# 导入designer工具生成的login模块
from win import Ui_MainWindow
from test_1 import *
import time
class MyMainForm(QMainWindow, Ui_MainWindow):def __init__(self, parent=None):super(MyMainForm, self).__init__(parent)self.setupUi(self)self.Button_close.clicked.connect(self.close)self.Button_run.clicked.connect(self.F_run)def F_run(self):link_1=self.line_link.text()title_1=F_gettitle(link_1)self.text_result.setText(f"标题获取成功——{title_1}")# file_1=open(f'{title_1}.txt',mode='w',encoding='utf-8  ')test_1=F_getyuan(link_1)self.text_result.append("提取源代码成功")time.sleep(1)search_1=F_searchlink(test_1)self.text_result.append("提取文章链接成功")pachong(search_1,title_1)if __name__ == "__main__":# 固定的,PyQt5程序都需要QApplication对象。sys.argv是命令行参数列表,确保程序可以双击运行app = QApplication(sys.argv)# 初始化myWin = MyMainForm()# 将窗口控件显示在屏幕上myWin.show()# 程序运行,sys.exit方法确保程序完整退出。sys.exit(app.exec_())

test_1.py

import requests
import re
import numpy as np
from lxml import etree
#获取文章标题
def F_gettitle(link_0):head_qb={'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36'}test_1=requests.get(url=link_0,headers=head_qb)test_yuan=test_1.textdom=etree.HTML(test_yuan)test_2=dom.xpath('/html/body/article[1]/div[2]/div[2]/h1/text()')return test_2[0]#提取源代码
def F_getyuan(link_1):head_qb={'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36'}test_1=requests.get(url=link_1,headers=head_qb)test_yuan=test_1.texttest_yuan=str(test_yuan)return test_yuan#查询所有小说章节链接
def F_searchlink(link_2):re_1='<a id="haitung" href="(.*?)" rel="chapter">'re_1=re.compile(re_1)link_3=re.findall(re_1,link_2)link_max=np.array([])for link_1 in link_3:link_4=f'http://www.biquge66.net{link_1}'link_max=np.append(link_max,link_4)return link_max# #输出文章内容
# def F_edittxt(link_3):
#     head_qb={
#         'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36'
#     }
#     trytimes = 3
#     for i in range(trytimes):
#         try:
#             proxies = None
#             test_1=requests.get(url=link_3,headers=head_qb, verify=False, proxies=None, timeout=3)
#             if test_1.status_code == 200:
#                 break
#         except:
#             print(f'requests failed {i} time')
#     #提取文章链接
#     re_2='<p>(.*?)</p>'
#     re_2=re.compile(re_2)
#     #提取文章标题
#     re_3='<h1 class="bookname">(.*?)</h1>'
#     re.compile(re_3)
#     test_2=np.array([])
#     test_3=np.array([])
#     test_2=re.findall(re_2,test_1.text)
#     test_3 = re.findall(re_3, test_1.text)
#     #放在数组的最后一个
#     test_2=np.append(test_3,test_2)
#     return test_2

下一章内容

最后获取了所有的章节链接了,接下来就要爬取文章了

本来可以一起写的(可以看到我test_1.py中注释掉的部分),但是后面发现出了一些问题

才有了下一章内容

下一章会详细说明的

http://www.mmbaike.com/news/42814.html

相关文章:

  • 做网站云服务器选择多大带宽长春网站优化页面
  • 上海网站设计印刷拆除百度帐号申请注册
  • 网站点击后的loading是怎么做的网站推广的6个方法是什么
  • 滨海县建设局网站舆情网站直接打开的软件
  • 网站限制访问流量免费网上申请注册
  • 客户管理系统服务关键词优化seo优化排名
  • 广西做网站建设的公司seo优化厂商
  • 响应式购物网站设计2024年重大新闻简短
  • 宝塔做两个网站吉林seo技术交流
  • scratch少儿编程百度seo引流
  • 网站域名申请之后如何做网站网站建设合同
  • 国外网站流量徐州seo招聘
  • 电商 网站 建设提升seo排名的方法
  • 华强北做网站seo页面代码优化
  • 网站建设 电子商务 品牌首选IDC深圳网络运营推广公司
  • 网站建设需要的专业知识品牌推广方案怎么写
  • 怎样申请做p2p融资网站抖音怎么推广引流
  • 兰州网站建设公司热搜榜百度
  • 淮南新闻网深圳seo优化
  • 贾汪区住房和城乡建设局网站沧浪seo网站优化软件
  • 益阳网站制作公司地址佛山网站优化服务
  • 要怎么网站做推广软文推广500字
  • 做网站大概一个月多少工资重庆森林
  • 网站备案时间也太慢了成都网站优化seo
  • 东莞网站设计实力新东方雅思培训价目表
  • 一个做BAT笔试题的网站自媒体seo是什么意思
  • 云优化 网站建设推一手新闻发稿平台
  • 免费建设微网站制作智能网站推广优化
  • 如何在搜索引擎做网站seo整站优化公司持续监控
  • 网站开发后台服务器功能百度seo排名优化联系方式