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

服装建设网站论文的目录/产品市场推广方案

服装建设网站论文的目录,产品市场推广方案,网站管理基本内容,做网站的生产方式简单爬虫实现 import requests from bs4 import BeautifulSoup# 生成要爬取的网页地址列表,这里是博客园的分页地址,从第1页到第50页 urls [f"https://www.cnblogs.com/#p{i}" for i in range(1, 50 1)]# 生产者函数——负责下载网页内容 d…

简单爬虫实现

import requests
from bs4 import BeautifulSoup# 生成要爬取的网页地址列表,这里是博客园的分页地址,从第1页到第50页
urls = [f"https://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, f"craw {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, f"results.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(target=do_craw, args=(url_queue, html_queue), name=f"craw{idx}")t.start()# 开启消费者线程和创建用于存储解析结果的文本文件fout = open("spider_data.txt", "w")for idx in range(2):# 创建一个新的线程,指定其执行的任务函数为do_parse,并传入相应的参数t = threading.Thread(target=do_parse, args=(html_queue, fout), name=f"parse{idx}")t.start()

http://www.rdtb.cn/news/669.html

相关文章:

  • wordpress rss/怎么样优化关键词排名
  • 珠海集团网站建设/baidu 百度一下
  • 网站策划书怎么做的美观/百度页面推广
  • 代码软件/南宁百度seo公司
  • 全能企业网站管理系统/上海网络推广服务
  • 一开始用php做网站/今日头条seo
  • 摄影网站建设的意义/友链出售
  • 烟台公司做网站/百度怎么推广广告
  • 仿网站源码/网络销售平台排名前十
  • 网站开发过程中出现的问题/百度关键词查询网站
  • vs2010怎么做网站前台/百度问答一天能赚100块吗
  • 工作号做文案素材的网站/外包项目接单平台
  • 吉安网站建设jxthw/360优化大师官方下载手机
  • 公司资质查询官方网站/武汉网站推广排名
  • 网站与网页的区别与联系/注册城乡规划师
  • 如何做流量网站/优化百度seo技术搜索引擎
  • 网站建设的基本步骤是哪些/网站优化排名金苹果系统
  • 本地做的网站怎么解析到域名/广州日新增51万人
  • 小程序链接网站自己做/太原seo排名优化公司
  • 深圳市网站建设公司设计/北京网络营销推广外包
  • 2016大型注册域名网站有哪些/宁波seo关键词培训
  • 黄页网在线观看害羞草隐藏入口视频网页在线看/长沙seo就选智优营家
  • 太原市今天新闻/网站优化建议怎么写
  • 网站可以自己做/扫描图片找原图
  • 技术先进的网站建/百度推广优化怎么做
  • 阿里巴巴怎么建设网站首页/武汉seo排名
  • 隆尧网站制作/百度关键词推广网站
  • 在吗做网站商城/推广网络营销案例
  • 网站建设高清图/湖南企业竞价优化
  • 上住房和城乡建设部网站/网站为什么要seo?