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

泰安网站制作服务网站建设合同图表版

泰安网站制作服务,网站建设合同图表版,贵阳网站开发外包,贵州省遵义市建设局网站简单爬虫实现 import requests from bs4 import BeautifulSoup# 生成要爬取的网页地址列表#xff0c;这里是博客园的分页地址#xff0c;从第1页到第50页 urls [fhttps://www.cnblogs.com/#p{i} for i in range(1, 50 1)]# 生产者函数——负责下载网页内容 d…简单爬虫实现 import requests from bs4 import BeautifulSoup# 生成要爬取的网页地址列表这里是博客园的分页地址从第1页到第50页 urls [fhttps://www.cnblogs.com/#p{i} for i in range(1, 50 1)]# 生产者函数——负责下载网页内容 def craw(url):这个函数接收一个网页的URL作为参数使用requests库发送GET请求获取该网页的内容并以文本形式返回。r requests.get(url)# 要下载内容的网页URLreturn r.text#返回获取到的网页文本内容# 消费者函数——拿着生产者下载好的网页内容进行解析 def parse(html):此函数接收从网页下载的HTML文本内容作为参数使用BeautifulSoup库对其进行解析提取出所有class名为post-item-title的超链接a标签然后遍历这些标签将每个标签的href链接内容和标签文字内容以元组的形式提取出来并返回# 指定为html解析器 从网页上下载下来的HTML文本内容soup BeautifulSoup(html, html.parser) # 提取出所有class名为post-item-title 的 超链接 a标签links soup.find_all(a, class_post-item-title)# 遍历links元组将超链接a标签的href链接内容 和 标签文字内容提取输出return [(link[href], link.get_text()) for link in links]# 返回一个包含元组的列表每个元组包含一个超链接的href值和对应的文字内容# 主程序入口当脚本直接运行时执行以下代码 if __name__ __main__:在这里我们调用了craw函数去下载urls列表中第3个网址索引为2的网页内容然后将下载好的内容传递给parse函数进行解析最后遍历parse函数返回的结果并打印出来。for result in parse(craw(urls[2])):print(result) 生产者消费者函数 import threading import time import random import queue import blog_spider# 定义生产者线程要执行的函数用于从URL队列中获取URL爬取网页内容并放入HTML队列 def do_craw(url_queue: queue.Queue, html_queue: queue.Queue):#url_queue: 存储待爬取URL的队列 html_queue: 用于存储爬取到的网页HTML内容的队列这个函数是生产者线程要执行的函数。不断从URL队列中获取URL调用blog_spider.craw函数爬取网页的内容然后将爬取到的HTML内容放入HTML队列中并打印相关的内容。while True:# 从URL队列中获取一个URLurl url_queue.get()# 调用blog_spider模块中的craw函数爬取该URL对应的网页内容html blog_spider.craw(url)# 将爬取到的网页内容放入HTML队列html_queue.put(html)# 打印当前线程的名称、正在爬取的URL以及URL队列剩余的大小print(threading.current_thread().name, fcraw {url}, url_queue.size, url_queue.qsize())time.sleep(random.randint(1, 2))#休眠一段时间# 定义消费者线程要执行的函数用于从HTML队列中获取网页内容 def do_parse(html_queue: queue.Queue, fout):#html_queue: 存储网页HTML内容的队列此函数是消费者线程要执行的任务函数。它会不断从HTML队列中获取网页内容调用blog_spider.parse函数对其进行解析fout: 用于写入解 析结果的文件对象将解析结果写入到指定的文件中并打印相关的内容。while True:# 从HTML队列中获取一个网页内容html html_queue.get()# 调用blog_spider模块中的parse函数对网页内容进行解析得到解析结果results blog_spider.parse(html)for result in results:fout.write(str(result) \n)# 打印当前线程的名称、解析结果的数量以及HTML队列剩余的大小print(threading.current_thread().name, fresults.size, len(results), html_queue_size, html_queue.qsize())time.sleep(random.randint(1, 2))#休眠一段时间# 主程序入口当脚本直接运行时执行以下代码 if __name__ __main__:# 创建一个用于存储待爬取URL的队列url_queue queue.Queue()# 创建一个用于存储爬取到的网页HTML内容的队列html_queue queue.Queue()# 将blog_spider模块中定义的所有URL放入URL队列for url in blog_spider.urls:url_queue.put(url)# 开启生产者线程for idx in range(3):# 创建一个新的线程指定其执行的任务函数为do_craw并传入相应的参数t threading.Thread(targetdo_craw, args(url_queue, html_queue), namefcraw{idx})t.start()# 开启消费者线程和创建用于存储解析结果的文本文件fout open(spider_data.txt, w)for idx in range(2):# 创建一个新的线程指定其执行的任务函数为do_parse并传入相应的参数t threading.Thread(targetdo_parse, args(html_queue, fout), namefparse{idx})t.start()
http://www.w-s-a.com/news/463149/

相关文章:

  • 最好用的cms手机百度关键词排名 网站优化软件
  • 凉山州城乡规划建设局网站长沙网站建设哪家强
  • 广州网站开发创意设计公司企业自己怎么制作网站首页
  • 曲靖 曲靖网站建设软件(app)开发wordpress 没有远程发布
  • 官方网站开发与定制网站建设技术是干嘛的
  • 昆明网站建设工作室网站菜单导航怎么做的
  • 南京网站做的好的公司猪八戒网站做推广怎么样
  • 建站收费标准福州网站搭建
  • 做防护用品的网站欧美网站建设风格特点
  • 龙华做网站联系电话北京软件开发培训班
  • 做网站运营有前途网站的建设与管理的心得体会
  • 河南网站推广怎么做网页制作免费下载
  • 网站如何屏蔽中国ip商丘网站建设的公司哪家好
  • 东莞广告公司东莞网站建设价格鹤壁哪有做网站的
  • 门户网站界面设计logo设计商标设计
  • 建设银行网站驱动宁波网站建设相信荣胜网络
  • 八里河网站建设项目建设可行性企业品牌推广方式有哪些
  • jsp网站开发之html入门知识广州服装设计公司
  • 做电商看的网站有哪些个人网页制作成品免费
  • 沈阳建站多少钱境外网站 备案
  • 提交网站收录入口斗图在线制作
  • 建设化妆品网站服务医药网站前置审批
  • 购物网站修改注册信息模块的分析怎么注册公司logo
  • 那个网站可以做域名跳转的青岛网站建设定制
  • 网站登记模板互联网技术发展及其影响的调查
  • 北京专业的网站建设西安企业家名单
  • 移动网站开发服务器丰都集团网站建设
  • 网站开发逻辑图烫画图案设计网站
  • 客户管理系统哪找公司网站如何做优化
  • 常德企业网站建设广州站在哪里