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

中山网页网站设计模板技术支持 石家庄网站建设

中山网页网站设计模板,技术支持 石家庄网站建设,织梦网站建设案例,引擎优化seo怎么做目录 上一章内容 前言 出现的一些问题 requests包爬取小说的不便之处 利用aiohttp包来异步爬取小说 介绍 代码 main.py test_1.py test_3.py 代码大致讲解 注意 系列总结 上一章内容 用python从零开始做一个最简单的小说爬虫带GUI界面#xff08;2/3#xff09;_…目录 上一章内容 前言 出现的一些问题 requests包爬取小说的不便之处 利用aiohttp包来异步爬取小说 介绍 代码 main.py test_1.py test_3.py 代码大致讲解 注意 系列总结 上一章内容 用python从零开始做一个最简单的小说爬虫带GUI界面2/3_木木em哈哈的博客-CSDN博客前一章博客我们讲了怎么通过PyQt5来制作图形化界面并且进行一些基本设置接下来两章我们主要讲核心爬虫代码的实现。https://blog.csdn.net/mumuemhaha/article/details/132457770?spm1001.2014.3001.5501 前言 本章内容讲的是给出了小说文章链接的情况下如何爬取小说 出现的一些问题 requests包爬取小说的不便之处 在最开始的时候包括我前段时间写的博客都是利用requests包进行爬取 但是这回出现一个问题 简单来说就是request是顺序执行的 必须要等到上一个网络的请求返回后才会执行下一个步骤 假设我要爬取的小说有2000个章节 每次返回请求并且处理信息都需要1秒的时间 那么总共就需要2000秒也就是半个多小时 要是中间再来个返回超时出现错误的 心态直接要爆炸 返回超时我们可以设置超时等待时间 但是占据大部分时间的依然是网络请求的延迟 那有什么方法可以解决呢 利用aiohttp包来异步爬取小说 介绍 异步是一种比多线程高效得多的并发模型是无序的为了完成某个任务在执行的过程中不同程序单元之间过程中无需通信协调也能完成任务的方式也就是说不相关的程序单元之间可以是异步的。 简单来说就是可以类比小学的一种数学——你可以再烧开水的时候洗菜在煮饭的时候切菜的那类问题 在python程序中就是你在等待网络回复的数据包时候可以继续发送其他的数据包 起到资源利用趋于最大化的趋势 代码 具体的代码在这 这里只做初步介绍具体包的使用不展开细讲 main.py import sys # PyQt5中使用的基本控件都在PyQt5.QtWidgets模块中 from PyQt5.QtWidgets import QApplication, QMainWindow # 导入designer工具生成的login模块 from win import Ui_MainWindow from test_1 import * from test_3 import * import time class MyMainForm(QMainWindow, Ui_MainWindow):def __init__(self, parentNone):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_1self.line_link.text()title_1F_gettitle(link_1)self.text_result.setText(f标题获取成功——{title_1})# file_1open(f{title_1}.txt,modew,encodingutf-8 )test_1F_getyuan(link_1)self.text_result.append(提取源代码成功)time.sleep(1)search_1F_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_1requests.get(urllink_0,headershead_qb)test_yuantest_1.textdometree.HTML(test_yuan)test_2dom.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_1requests.get(urllink_1,headershead_qb)test_yuantest_1.texttest_yuanstr(test_yuan)return test_yuan#查询所有小说章节链接 def F_searchlink(link_2):re_1a idhaitung href(.*?) relchapterre_1re.compile(re_1)link_3re.findall(re_1,link_2)link_maxnp.array([])for link_1 in link_3:link_4fhttp://www.biquge66.net{link_1}link_maxnp.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_1requests.get(urllink_3,headershead_qb, verifyFalse, proxiesNone, timeout3) # if test_1.status_code 200: # break # except: # print(frequests failed {i} time) # #提取文章链接 # re_2p(.*?)/p # re_2re.compile(re_2) # #提取文章标题 # re_3h1 classbookname(.*?)/h1 # re.compile(re_3) # test_2np.array([]) # test_3np.array([]) # test_2re.findall(re_2,test_1.text) # test_3 re.findall(re_3, test_1.text) # #放在数组的最后一个 # test_2np.append(test_3,test_2) # return test_2 test_3.py import asyncio import aiohttp import re import numpy as nptitleasync def F_2(session,url):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}async with session.get(url,verify_sslFalse,headershead_qb) as resqonse:global titletextawait resqonse.text()textstr(text)re_2 p(.*?)/pre_2 re.compile(re_2)# 提取文章标题re_3 h1 classbookname(.*?)/h1re.compile(re_3)test_2 np.array([])test_3 np.array([])test_2 re.findall(re_2, text)test_3 re.findall(re_3, text)test_2 np.append(test_3, test_2)for test_max in test_2:with open(f{title}.txt,modea,encodingutf-8) as file:file.writelines(test_max)async def F_1(urls):async with aiohttp.ClientSession() as session:tasks[asyncio.create_task(F_2(session,url)) for url in urls]await asyncio.wait(tasks)def pachong(urls_1,title_1):global titletitletitle_1asyncio.run(F_1(urls_1))titletitle_1 代码大致讲解 主函数中传入的pachong(的两个参数一个是文章链接的总列表一个是小说的名字用于创建txt文件的名称 在等待网络回复时继续发送请求 之后利用re库来提取源代码中的文章文字最后写入txt中 注意 利用这种方法爬取的内容小说章节是无序的但是可以通过章节名来进行排序好难写不想写了 系列总结 本次文章初步了解了GUI图形界面的制作并且了解了另外一种爬虫爬取的方法——异步爬虫
http://www.lakalapos1.cn/news/47451/

相关文章:

  • 网站建设与优化推广的话术湖南郴州旅游十大必去景区
  • 手表网站欧米茄报价wordpress并发亿万
  • 图书建设网站沈阳百度网站排名
  • 我司网站改版上线网站建设seo推广软
  • 能进入危险网站的浏览器滨海网站建设服务商
  • 淘宝网站链接怎么做要丹东谁家做网站
  • php网站后台密码忘记了快看点号自媒体平台注册
  • 网站怎么收费门源县wap网站建设公司
  • 优化型网站是什么意思雅安网站开发
  • 大连网站开发平台培训班网站建设
  • 长沙黄页常州百度推广优化
  • 优秀的网站设计方案上海千锋教育
  • 哪个网站可以免费做网页网站超市安装
  • 网站报价详情更改wordpress最大上传文件大小
  • 杂粮网站建设的必要性大丰网站设计公司
  • jsp网站开发存在的问题net网站开发 兼职
  • 牡丹江网站制作php网站开发前端
  • 紫金网站制作策划app开发价格公司
  • 企业建设网站的资金策划山东专业网站seo
  • 网页设计师都在什么网站上面找素材插件 wordpress
  • 商丘哪里做网站网页设计与制作课程的思政目标
  • 网站没制作好可以备案吗阿里服务器搭建wordpress
  • 英文WordPress站点切换为中文手机网站开发成为小程序
  • 哪个旅游网站可以做私人定制小白怎么制作微信小程序
  • 做汽车价格的网站wordpress随机切换主页内容
  • 广东专业做网站排名哪家好公司网站开发需求文档
  • 做淘宝必备的网站项目推广网站
  • discuz建网站wordpress添加商品分类页
  • 家具做网站途途外贸企业网站管理系统
  • 网站换ip对优化有影响吗临海如何制作公司网站框架