没人否认,维基百科是现代最令人惊叹的人类发明之一。
几年前谁能想到,匿名贡献者们的义务工作竟创造出前所未有的巨大在线知识库?维基百科不仅是你写大学论文时最好的信息渠道,也是一个极其丰富的数据源。
从自然语言处理到监督式机器学习,维基百科助力了无数的数据科学项目。
维基百科的规模之大,可称为世上最大的百科全书,但也因此稍让数据工程师们感到头疼。当然,有合适的工具的话,数据量的规模就不是那么大的问题了。
本文将介绍“如何编程下载和解析英文版维基百科”。
在介绍过程中,我们也会提及以下几个数据科学中重要的问题:
1、从网络中搜索和编程下载数据
2、运用Python库解析网络数据(HTML, XML, MediaWiki格式)
3、多进程处理、并行化处理
这个项目最初是想要收集维基百科上所有的书籍信息,但我之后发现项目中使用的解决方法可以有更广泛的应用。这里提到的,以及在Jupyter Notebook里展示的技术,能够高效处理维基百科上的所有文章,同时还能扩展到其它的网络数据源中。
本文中运用的Python代码的笔记放在GitHub,灵感来源于Douwe Osinga超棒的《深度学习手册》。前面提到的Jupyter Notebooks也可以免费获取。
GitHub链接:
https://github.com/WillKoehrsen/wikipedia-data-science/blob/master/notebooks/Downloading%20and%20Parsing%20Wikipedia%20Articles.ipynb
免费获取地址:
https://github.com/DOsinga/deep_learning_cookbook
编程搜索和下载数据
任何一个数据科学项目第一步都是获取数据。我们当然可以一个个进入维基百科页面打包下载搜索结果,但很快就会下载受限,而且还会给维基百科的服务器造成压力。还有一种办法,我们通过dumps.wikimedia.org这个网站获取维基百科所有数据的定期快照结果,又称dump。
用下面这段代码,我们可以看到数据库的可用版本:
import requests# Library for parsing HTMLfrom bs4 import BeautifulSoupbase_url = 'https://dumps.wikimedia.org/enwiki/'index = requests.get(base_url).textsoup_index = BeautifulSoup(index, 'html.parser')# Find the links on the pagedumps = [a['href'] for a in soup_index.find_all('a') if a.has_attr('href')]dumps['../', '20180620/', '20180701/', '20180720/', '20180801/', '20180820/', '20180901/', '20180920/', 'latest/']
这段代码使用了BeautifulSoup库来解析HTML。由于HTML是网页的标准标识语言,因此就处理网络数据来说,这个库简直是无价瑰宝。
本项目使用的是2018年9月1日的dump(有些dump数据不全,请确保选择一个你所需的数据)。我们使用下列代码来找到dump里所有的文件。
dump_url = base_url + '20180901/'# Retrieve the htmldump_html = requests.get(dump_url).text# Convert to a soupsoup_dump = BeautifulSoup(dump_html, 'html.parser')# Find list elements with the class filesoup_dump.find_all('li', {'class': 'file'})[:3][
enwiki-20180901-pages-articles-multistream.xml.bz2 15.2 GB,
enwiki-20180901-pages-articles-multistream-index.txt.bz2 195.6 MB,
enwiki-20180901-pages-meta-history1.xml-p10p2101.7z 320.6 MB]
我们再一次使用BeautifulSoup来解析网络找寻文件。我们可以在https://dumps.wikimedia.org/enwiki/20180901/页面里手工下载文件,但这就不够效率了。网络数据如此庞杂,懂得如何解析HTML和在程序中与网页交互是非常有用的——学点网站检索知识,庞大的新数据源便触手可及。
考虑好下载什么
上述代码把dump里的所有文件都找出来了,你也就有了一些下载的选择:文章当前版本,文章页以及当前讨论列表,或者是文章所有历史修改版本和讨论列表。如果你选择最后一个,那就是万亿字节的数据量了!本项目只选用文章最新版本。
所有文章的当前版本能以单个文档的形式获得,但如果我们下载解析这个文档,就得非常费劲地一篇篇文章翻看,非常低效。更好的办法是,下载多个分区文档,每个文档内容是文章的一个章节。之后,我们可以通过并行化一次解析多个文档,显著提高效率。
“当我处理文档时,我更喜欢多个小文档而非一个大文档,这样我就可以并行化运行多个文档了。”
分区文档格式为bz2压缩的XML(可扩展标识语言),每个分区大小300~400MB,全部的压缩包大小15.4GB。无需解压,但如果你想解压,大小约58GB。这个大小对于人类的全部知识来说似乎并不太大。
维基百科压缩文件大小
下载文件
Keras 中的get_file语句在实际下载文件中非常好用。下面的代码可通过链接下载文件并保存到磁盘中:
from keras.utils import get_filesaved_file_path = get_file(file, url)
下载的文件保存在~/.keras/datasets/,也是Keras默认保存设置。一次性下载全部文件需2个多小时(你可以试试并行下载,但我试图同时进行多个下载任务时被限速了)
解析数据
我们首先得解压文件。但实际我们发现,想获取全部文章数据根本不需要这样。我们可以通过一次解压运行一行内容来迭代文档。当内存不够运行大容量数据时,在文件间迭代通常是唯一选择。我们可以使用bz2库对bz2压缩的文件迭代。
不过在测试过程中,我发现了一个更快捷(双倍快捷)的方法,用的是system utility bzcat以及Python模块的subprocess。以上揭示了一个重要的观点:解决问题往往有很多种办法,而找到最有效办法的唯一方式就是对我们的方案进行基准测试。这可以很简单地通过%%timeit Jupyter cell magic来对方案计时评价。
迭代解压文件的基本格式为:
data_path = '~/.keras/datasets/enwiki-20180901-pages-articles15.xml-p7744803p9244803.bz2# Iterate through compressed file one line at a timefor line in subprocess.Popen(['bzcat'], stdin = open(data_path), stdout = subprocess.PIPE).stdout: # process line
如果简单地读取XML数据,并附为一个列表,我们得到看起来像这样的东西:

维基百科文章的源XML
上面展示了一篇维基百科文章的XML文件。每个文件里面有成千上万篇文章,因此我们下载的文件里包含百万行这样的语句。如果我们真想把事情弄复杂,我们可以用正则表达式和字符串匹配跑一遍文档来找到每篇文章。这就极其低效了,我们可以采取一个更好的办法:使用解析XML和维基百科式文章的定制化工具。
解析方法
我们需要在两个层面上来解析文档:
1、从XML中提取文章标题和内容
2、从文章内容中提取相关信息
好在,Python对这两个都有不错的应对方法。
解析XML
解决第一个问题——定位文章,我们使用SAX(Simple API for XML) 语法解析器。BeautifulSoup语句也可以用来解析XML,但需要内存载入整个文档并且建立一个文档对象模型(DOM)。而SAX一次只运行XML里的一行字,完美符合我们的应用场景。
基本思路就是我们对XML文档进行搜索,在特定标签间提取相关信息。例如,给出下面这段XML语句:
Carroll F. Knicely'''Carroll F. Knicely''' (born c. 1929 in [[Staunton, Virginia]] - died November 2, 2006 in [[Glasgow, Kentucky]]) was [[Editing|editor]] and [[Publishing|publisher]] of the ''[[Glasgow Daily Times]]'' for nearly 20 years (and later, its owner) and served under three [[Governor of Kentucky|Kentucky Governors]] as commissioner and later Commerce Secretary.
'
我们想筛出在
和<text>这两<a href="https://m.hqchip.com/tags" target="_blank"><u>标签</u></a>间的内容(这个title就是维基百科文章标题,text就是文章内容)。SAX能直接让我们实现这样的功能——通过parser和ContentHandler这两个语句来控制信息如何通过解析器然后被处理。每次扫一行XML句子进解析器,Content Handler则帮我们提取相关的信息。</p>
<p style="text-indent: 2em;">
如果你不尝试做一下,可能理解起来有点难度,但是Content handler的思想是寻找开始标签和结束标签之间的内容,将找到的字符添加到缓存中。然后将缓存的内容保存到字典中,其中相应的标签作为对应的键。最后我们得到一个键是标签,值是标签中的内容的字典。下一步,我们会将这个字典传递给另一个函数,它将解析字典中的内容。</p>
<p style="text-indent: 2em;">
我们唯一需要编写的SAX的部分是Content Handler。全文如下:</p>
<p style="text-indent: 2em;">
在这段代码中,我们寻找标签为title和text的标签。每次解析器遇到其中一个时,它会将字符保存到缓存中,直到遇到对应的结束标签(</tag>)。然后它会保存缓存内容到字典中-- self._values。文章由<page>标签区分,如果Content Handler遇到一个代表结束的</page>标签,它将添加self._values 到文章列表(self._pages)中。如果感到疑惑了,实践观摩一下可能会有帮助。</p>
<p style="text-indent: 2em;">
下面的代码显示了如何通过XML文件查找文章。现在,我们只是将它们保存到handler._pages中,稍后我们将把文章发送到另一个函数中进行解析。</p>
<p style="text-indent: 2em;">
# Object for handling xmlhandler = WikiXmlHandler()# Parsing objectparser = xml.sax.make_parser()parser.setContentHandler(handler)# Iteratively process filefor line in subprocess.Popen(['bzcat'], stdin = open(data_path), stdout = subprocess.PIPE).stdout: parser.feed(line) # Stop when 3 articles have been found if len(handler._pages) > 2: break</p>
<p style="text-indent: 2em;">
如果我们观察handler._pages,我们将看到一个列表,其中每个元素都是一个包含一篇文章的标题和内容的元组:</p>
<p style="text-indent: 2em;">
handler._pages[0][('Carroll Knicely', "'''Carroll F. Knicely''' (born c. 1929 in [[Staunton, Virginia]] - died November 2, 2006 in [[Glasgow, Kentucky]]) was [[Editing|editor]] and [[Publishing|publisher]] ...)]</p>
<p style="text-indent: 2em;">
此时,我们已经编写的代码可以成功地识别XML中的文章。现在我们完成了解析文件一半的任务,下一步是处理文章以查找特定页面和信息。再次,我们使用专为这项工作而创建的一个工具。</p>
<p style="text-indent: 2em;">
解析维基百科文章</p>
<p style="text-indent: 2em;">
维基百科运行在一个叫做MediaWiki的软件上,该软件用来构建wiki。这使文章遵循一种标准格式,这种格式可以轻易地用编程方式访问其中的信息。虽然一篇文章的文本看起来可能只是一个字符串,但由于格式的原因,它实际上编码了更多的信息。为了有效地获取这些信息,我们引进了强大的 mwparse<a href="https://www.elecfans.com/tongxin/rf/" target="_blank"><u>rf</u></a><a href="http://www.elecfans.com/tags/rom/" target="_blank"><u>rom</u></a>hell, 一个为处理MediaWiki内容而构建的库。</p>
<p style="text-indent: 2em;">
如果我们将维基百科文章的文本传递给mwparserfromhell,我们会得到一个Wikicode对象,它含有许多对数据进行排序的方法。例如,以下代码从文章创建了一个wikicode对象,并检索文章中的wikilinks()。这些链接指向维基百科的其他文章:</p>
<p style="text-indent: 2em;">
import mwparserfromhell# Create the wiki articlewiki = mwparserfromhell.parse(handler._pages[6][1])# Find the wikilinkswikilinks = [x.title for x in wiki.filter_wikilinks()]wikilinks[:5]['Provo, Utah', 'Wasatch Front', 'Megahertz', 'Contemporary hit radio', 'watt']</p>
<p style="text-indent: 2em;">
有许多有用的方法可以应用于wikicode,例如查找注释或搜索特定的关键字。如果您想获得文章文本的最终修订版本,可以调用:</p>
<p style="text-indent: 2em;">
wiki.strip_code().strip()'KENZ (94.9 FM, " Power 94.9 " ) is a top 40/CHR radio station bro<a href="http://www.elecfans.com/tags/adc/" target="_blank"><u>adc</u></a>asting to Salt Lake City, Utah '</p>
<p style="text-indent: 2em;">
因为我的最终目标是找到所有关于书籍的文章,那么是否有一种方法可以使用解析器来识别某个类别中的文章呢?幸运的是,答案是肯定的——使用MediaWiki templates。</p>
<p style="text-indent: 2em;">
文章模板</p>
<p style="text-indent: 2em;">
模板(templates)是记录信息的标准方法。维基百科上有无数的模板,但与我们的目的最相关的是信息框(Infoboxes)。有些模板编码文章的摘要信息。例如,战争与和平的信息框是:</p>
<p align="center">
</p>
<p style="text-indent: 2em;">
维基百科上的每一类文章,如电影、书籍或广播电台,都有自己的信息框。在书籍的例子中,信息框模板被命名为Infobox book。同样,wiki对象有一个名为filter_templates()的方法,它允许我们从一篇文章中提取特定的模板。因此,如果我们想知道一篇文章是否是关于一本书的,我们可以通过book信息框去过滤。展示如下:</p>
<p style="text-indent: 2em;">
# Filter article for book templatewiki.filter_templates('Infobox book')</p>
<p style="text-indent: 2em;">
如果匹配成功,那我们就找到一本书了!要查找你感兴趣的文章类别的信息框模板,请参阅信息框列表。</p>
<p style="text-indent: 2em;">
如何将用于解析文章的mwparserfromhell与我们编写的SAX解析器结合起来?我们修改了Content Handler中的endElement方法,将包含文章标题和文本的值的字典,发送到通过指定模板搜索文章文本的函数中。如果函数找到了我们想要的文章,它会从文章中提取信息,然后返回给handler。首先,我将展示更新后的endElement 。</p>
<p style="text-indent: 2em;">
def endElement(self, name): """Closing tag of element""" if name == self._current_tag: self._values[name] = ' '.join(self._buffer) if name == 'page': self._article_count += 1 # Send the page to the process article function book = process_article(**self._values, template = 'Infobox book') # If article is a book append to the list of books if book: self._books.append(book)</p>
<p style="text-indent: 2em;">
一旦解析器到达文章的末尾,我们将文章传递到函数process_article,如下所示:</p>
<p style="text-indent: 2em;">
def process_article(title, text, timestamp, template = 'Infobox book'): """Process a wikipedia article looking for template""" # Create a parsing object wikicode = mwparserfromhell.parse(text) # Search through templates for the template matches = wikicode.filter_templates(matches = template) if len(matches) >= 1: # Extr<a href="https://www.hqchip.com/app/1703" target="_blank"><u>ac</u></a>t information from infobox properties = {pa<a href="http://www.elecfans.com/tags/ram/" target="_blank"><u>ram</u></a>.name.strip_code().strip(): param.value.strip_code().strip() for param in matches[0].params if param.value.strip_code().strip()} # Extract internal wikilinks</p>
<p style="text-indent: 2em;">
虽然我正在寻找有关书籍的文章,但是这个函数可以用来搜索维基百科上任何类别的文章。只需将模板替换为指定类别的模板(例如Infobox language是用来寻找语言的),它只会返回符合条件的文章信息。</p>
<p style="text-indent: 2em;">
我们可以在一个文件上测试这个函数和新的ContentHandler。</p>
<p style="text-indent: 2em;">
Searched through 427481 articles.Found 1426 books in 1055 seconds.</p>
<p style="text-indent: 2em;">
让我们看一下查找一本书的结果:</p>
<p style="text-indent: 2em;">
books[10]['War and Peace', {'name': 'War and Peace', 'author': 'Leo Tolstoy', 'language': 'Russian, with some French', 'country': 'Russia', 'genre': 'Novel (Historical novel)', 'publisher': 'The Russian Messenger (serial)', 'title_orig': 'Война и миръ', 'orig_lang_code': 'ru', 'translator': 'The first translation of War and Peace into English was by American Nathan Haskell Dole, in 1899', 'image': 'Tolstoy - War and Peace - first edition, 1869.jpg', 'caption': 'Front page of War and Peace, first edition, 1869 (Russian)', 'release_date': 'Serialised 1865–1867; book 1869', 'media_type': 'Print', 'pages': '1,225 (first published edition)'}, ['Leo Tolstoy', 'Novel', 'Historical novel', 'The Russian Messenger', 'Serial (publishing)', 'Category:1869 Russian novels', 'Category:Epic novels', 'Category:Novels set in 19th-century Russia', 'Category:Russian novels <a href="https://bbs.elecfans.com/zhuti_1472_1.html" target="_blank"><u>ad</u></a>apted into films', 'Category:Russian philosophical novels'], ['https://books.google.com/?id=c4HEAN-ti1MC', 'https://www.britannica.com/art/English-literature', 'https://books.google.com/books?id=xf7umXHGDPcC', 'https://books.google.com/?id=E5fotqsglPEC', 'https://books.google.com/?id=9sHebfZIXFAC'], '2018-08-29T02:37:35Z']</p>
<p style="text-indent: 2em;">
对于维基百科上的每一本书,我们把信息框中的信息整理为字典、书籍在维基百科中的wikilinks信息、书籍的外部链接和最新编辑的时间戳。(我把精力集中在这些信息上,为我的下一个项目建立一个图书推荐系统)。你可以修改process_article函数和WikiXmlHandler类,以查找任何你需要的信息和文章!</p>
<p style="text-indent: 2em;">
如果你看一下只处理一个文件的时间,1055秒,然后乘以55,你会发现处理所有文件的时间超过了15个小时!当然,我们可以在一夜之间运行,但如果可以的话,我不想浪费额外的时间。这就引出了我们将在本项目中介绍的最后一种技术:使用多处理和多线程进行并行化。</p>
<p style="text-indent: 2em;">
并行操作</p>
<p style="text-indent: 2em;">
与其一次一个解析文件,不如同时处理其中的几个(这就是我们下载分区的原因)。我们可以使用并行化,通过多线程或多处理来实现。</p>
<p style="text-indent: 2em;">
多线程与多处理</p>
<p style="text-indent: 2em;">
多线程和多处理是同时在计算机或多台计算机上执行许多任务的方法。我们磁盘上有许多文件,每个文件都需要以相同的方式进行解析。一个简单的方法是一次解析一个文件,但这并没有充分利用我们的资源。因此,我们可以使用多线程或多处理同时解析多个文件,这将大大加快整个过程。</p>
<p style="text-indent: 2em;">
通常,多线程对于输入/输出绑定任务(例如读取文件或发出请求)更好(更快)。多处理对于<a href="https://www.elecfans.com/v/tag/132/" target="_blank"><u>cpu</u></a>密集型任务更好(更快)。对于解析文章的过程,我不确定哪种方法是最优的,因此我再次用不同的参数对这两种方法进行了基准测试。</p>
<p style="text-indent: 2em;">
学习如何进行测试和寻找不同的方法来解决一个问题,你将会在数据科学或任何技术的职业生涯中走得更远。</p>
<p style="text-indent: 2em;">
相关报道:</p>
<p style="text-indent: 2em;">
https://toward<a href="https://m.hqchip.com/app/1522" target="_blank"><u>sd</u></a>atascience.com/wikipedia-data-science-working-with-the-worlds-largest-encyclopedia-c08efbac5f5c</p>
<p style="text-indent: 2em;">
【今日机器学习概念】</p>
<p style="text-indent: 2em;">
Have a Great Definition</p>
<p align="center">
</p>
</div>
<div class="statement2">
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
<a class="complaint handleJumpBy" href="/about/tousu.html" target="_blank">举报投诉</a>
</div>
<ul class="hot-main clearfix" style="text-align: right; ">
<li data-href="https://www.elecfans.com/tags/编程/">
<span>编程</span>
<div class="hot-des">
<div class="detail">
<div class="top clearfix">
<div class="lf title">
<a href="https://www.elecfans.com/tags/编程" target="_blank">编程</a>
</div>
<div class="lf attend advertTagId" data-id="5440">+关注</div>
</div>
<div id="tag_desc_button5440"></div>
<div class="clearfix des-detail">
<div class="lf">
<p>关注</p>
<span>88</span>
</div>
<div class="lf">
<p>文章</p>
<span>3656</span>
</div>
<div class="lf">
<p>浏览量</p>
<span>94420</span>
</div>
</div>
</div>
</div>
</li><li data-href="https://www.elecfans.com/tags/python/">
<span>python</span>
<div class="hot-des">
<div class="detail">
<div class="top clearfix">
<div class="lf title">
<a href="https://www.elecfans.com/tags/python" target="_blank">python</a>
</div>
<div class="lf attend advertTagId" data-id="42127">+关注</div>
</div>
<div id="tag_desc_button42127"></div>
<div class="clearfix des-detail">
<div class="lf">
<p>关注</p>
<span>56</span>
</div>
<div class="lf">
<p>文章</p>
<span>4815</span>
</div>
<div class="lf">
<p>浏览量</p>
<span>85393</span>
</div>
</div>
</div>
</div>
</li> </ul>
<!-- 广告中台 -->
<div class="articleContentFooterAD" style="display: none; margin: 20px 0 0 0;"></div>
<div class="wx_detail">
<p>原文标题:维基百科中的数据科学:手把手教你用Python读懂全球最大百科全书</p>
<p>文章出处:【微信号:CAAI-1981,微信公众号:中国人工智能学会】欢迎添加关注!文章转载请注明出处。</p>
</div> </div>
<div class="art-share-layout mt18" id="shareAddPcb">
<div class="clearfix">
<a href="javascript:;" class="art-collect J_bottom-coll J_coll-btn" style="visibility:visible">收藏</a>
<span class="ml15 fb"><span class="J_stownum"></span>人收藏</span>
<div class="bdsharebuttonbox fr">
<div class="share-web-qrcode--detail fl">
<i class="share-web-qrcode--share-icon"></i>
<div class="share-web-qrcode--bubble">
<div class="share-web-qrcode--bubble-inner">
<p class="qrcode-copy-title">扫一扫,分享给好友</p>
<div class="qrcode-image"></div>
<div class="qrcode-copy-link"><span>复制链接分享</span></div>
</div>
</div>
</div>
</div>
</div>
<a class="art-like-up J_bottom-like J_like-btn" href="javascript:;"></a>
<ul class="art-like-u"></ul>
</div>
<!-- comment Begin -->
<div class="comment-list detaildzs_list" id="comment">
<h2 class="title2">评论</h2>
</div><!-- comment End -->
<div class="c-form" id="cForm">
<!-- 未登录 -->
<p class="c-login special-login">发布评论请先 <a href="javascript:;">登录</a></p> </div>
<div class="article-list">
<p>相关推荐</p>
<div class="article" style="padding-left: 0px;">
<h2 class="title">
<a href="https://www.elecfans.com/soft/432/2025/202503076476568.html" target="_blank" >
KUKA机器人<b class='flag-5'>编程</b>说明(<b class='flag-5'>英文</b>)</a>
</h2>
<div class="summary">电子发烧友网站提供《KUKA机器人<b class='flag-5'>编程</b>说明(<b class='flag-5'>英文</b>).pdf》资料免费<b class='flag-5'>下载</b></div>
<div class="info">
<span class="fby">发表于</span> 03-07 14:05 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">0</span>次下载 </div>
</div> <div class="article" style="padding-left: 0px;">
<h2 class="title">
<a href="https://www.elecfans.com/d/6417699.html" target="_blank" >
<b class='flag-5'>百</b>度<b class='flag-5'>百科</b>启动“繁星计划”</a>
</h2>
<div class="summary">近日,<b class='flag-5'>百</b>度<b class='flag-5'>百科</b>携手中国科协、中国科学院大学共同举办了史记2024·科学<b class='flag-5'>百科</b>100词发布会,并在此盛会上正式启动了“繁星计划”。这一计划的核心目标在于利用前沿的AI技术,包括数字人、智能体等,以及</div>
<div class="info">
<a class="face s" href="" target="_blank" rel="nofollow">
<img src="" alt="的头像"/>
</a> <span class="fby">发表于</span> 12-31 10:26 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">375</span>次阅读 </div>
</div> <div class="article" style="padding-left: 0px;">
<h2 class="title">
<a href="https://www.elecfans.com/d/6357870.html" target="_blank" >
半导体术语小<b class='flag-5'>百科</b></a>
</h2>
<div class="summary">面对半导体行业的高速发展,掌握核心术语不仅是行业人的基本功,更是沟通无碍的关键。无论你是刚入行的新手,还是经验丰富的达人,这份“半导体术语小<b class='flag-5'>百科</b>”将带你走进从硅到微芯片、从前端到后端的每一环节。</div>
<div class="info">
<a class="face s" href="" target="_blank" rel="nofollow">
<img src="" alt="的头像"/>
</a> <span class="fby">发表于</span> 11-20 11:39 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">738</span>次阅读 </div>
</div> <div class="article" style="padding-left: 0px;">
<h2 class="title">
<a href="https://www.elecfans.com/d/6347214.html" target="_blank" >
对比<b class='flag-5'>Python</b>与Java<b class='flag-5'>编程</b>语言</a>
</h2>
<div class="summary"><b class='flag-5'>Python</b>与Java都是目前非常流行的<b class='flag-5'>编程</b>语言,它们各有其独特的优势和适用场景。以下是对这两种<b class='flag-5'>编程</b>语言的对比: 一、语法和易用性 <b class='flag-5'>Python</b> 语法简洁,代码更易读,非常适合初学者。</div>
<div class="info">
<a class="face s" href="" target="_blank" rel="nofollow">
<img src="" alt="的头像"/>
</a> <span class="fby">发表于</span> 11-15 09:31 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">683</span>次阅读 </div>
</div> <div class="article" >
<h2 class="title">
<a href="https://www.elecfans.com/d/6295440.html" target="_blank" >
鸿蒙智行再迎OTA升级,车载小艺化身私人用车顾问、<b class='flag-5'>百科</b>导师</a>
</h2>
<div class="summary">近期,鸿蒙智行迎来重磅OTA升级,此次升级的功能中,让问界M5、M7车主们翘首以盼的大模型车载小艺全新“上车”,解锁众多宝藏语音技能。在盘古大模型赋能下,小艺化身“私人用车顾问”、“<b class='flag-5'>百科</b>小导师”等</div>
<div class="info">
<a class="face s" href="" target="_blank" rel="nofollow">
<img src="" alt="的头像"/>
</a> <span class="fby">发表于</span> 10-30 14:41 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">398</span>次阅读 </div>
<a href="https://www.elecfans.com/d/6295440.html" class="thumb" target="_blank">
<img src="https://file1.elecfans.com//web1/M00/F3/F3/wKgaoWch1R2AKJDCAEADp0jog3Q69.jpeg" alt="鸿蒙智行再迎OTA升级,车载小艺化身私人用车顾问、<b class='flag-5'>百科</b>导师" /> </a>
</div> <div class="article" style="padding-left: 0px;">
<h2 class="title">
<a href="https://bbs.elecfans.com/jishu_2461046_1_1.html" target="_blank" >
名单公布!【书籍评测活动NO.49】大模型启示录:一本AI应用<b class='flag-5'>百科</b>全书</a>
</h2>
<div class="summary">大家了解全球最领先的大模型场景。
本书像 一本AI应用<b class='flag-5'>百科</b>全书 ,给予读者落地大模型时的启发。
本书的作者来自大模型应用公司微软Copilot的产品经理、最前沿的大模型研究员、国际对冲基金、云厂商前</div>
<div class="info">
<span class="fby">发表于</span> 10-28 15:34 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
</div>
</div> <div class="article" >
<h2 class="title">
<a href="https://www.elecfans.com/soft/Mec/2024/202409145687770.html" target="_blank" >
可<b class='flag-5'>编程</b>逻辑控制器——安全威胁<b class='flag-5'>和解</b>决方案</a>
</h2>
<div class="summary">电子发烧友网站提供《可<b class='flag-5'>编程</b>逻辑控制器——安全威胁<b class='flag-5'>和解</b>决方案.pdf》资料免费<b class='flag-5'>下载</b></div>
<div class="info">
<span class="fby">发表于</span> 09-14 09:57 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">0</span>次下载 </div>
<a href="https://www.elecfans.com/soft/Mec/2024/202409145687770.html" class="thumb" target="_blank">
<img src="https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png" alt="可<b class='flag-5'>编程</b>逻辑控制器——安全威胁<b class='flag-5'>和解</b>决方案" /> </a>
</div> <div class="article" style="padding-left: 0px;">
<h2 class="title">
<a href="https://www.elecfans.com/d/5557779.html" target="_blank" >
自动售货机MDB协议中文<b class='flag-5'>解析</b>(七)MDB-RS232控制纸币器的详细流程<b class='flag-5'>和解析</b></a>
</h2>
<div class="summary">自动售货机MDB协议中文<b class='flag-5'>解析</b>(七)MDB-RS232控制纸币器的详细流程<b class='flag-5'>和解析</b></div>
<div class="info">
<a class="face s" href="" target="_blank" rel="nofollow">
<img src="" alt="的头像"/>
</a> <span class="fby">发表于</span> 09-09 10:04 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">893</span>次阅读 </div>
</div> <div class="article" style="padding-left: 0px;">
<h2 class="title">
<a href="https://www.elecfans.com/soft/Mec/2024/202409075504592.html" target="_blank" >
Sony_TC-K333ESL_K970ES说明书<b class='flag-5'>英文版</b></a>
</h2>
<div class="summary">Sony_TC-K333ESL_K970ES 说明书<b class='flag-5'>英文版</b></div>
<div class="info">
<span class="fby">发表于</span> 09-07 11:37 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">2</span>次下载 </div>
</div> <div class="article" >
<h2 class="title">
<a href="https://www.elecfans.com/d/5030969.html" target="_blank" >
自动售货机MDB协议中文<b class='flag-5'>解析</b>(六)MDB-RS232控制硬币器的流程<b class='flag-5'>和解析</b></a>
</h2>
<div class="summary">自动售货机MDB协议中文<b class='flag-5'>解析</b>(六)MDB-RS232控制硬币器的流程<b class='flag-5'>和解析</b></div>
<div class="info">
<a class="face s" href="" target="_blank" rel="nofollow">
<img src="" alt="的头像"/>
</a> <span class="fby">发表于</span> 08-19 15:53 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">917</span>次阅读 </div>
<a href="https://www.elecfans.com/d/5030969.html" class="thumb" target="_blank">
<img src="https://file1.elecfans.com/web2/M00/04/46/wKgaombC-D2AdROZAAFowlDeR0g563.png" alt="自动售货机MDB协议中文<b class='flag-5'>解析</b>(六)MDB-RS232控制硬币器的流程<b class='flag-5'>和解析</b>" /> </a>
</div> <div class="article" >
<h2 class="title">
<a href="https://www.elecfans.com/d/2889768.html" target="_blank" >
《科技日报》<b class='flag-5'>英文版</b>头版头条:“本源悟空”开启中国量子计算新时代</a>
</h2>
<div class="summary">《科技日报》<b class='flag-5'>英文版</b>头版头条:“本源悟空”开启中国量子计算新时代</div>
<div class="info">
<a class="face s" href="" target="_blank" rel="nofollow">
<img src="" alt="的头像"/>
</a> <span class="fby">发表于</span> 05-19 08:22 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">857</span>次阅读 </div>
<a href="https://www.elecfans.com/d/2889768.html" class="thumb" target="_blank">
<img src="https://file.elecfans.com/web2/M00/3F/9D/poYBAGJo-maAOH8MAAIB_hk2Mno583.png" alt="《科技日报》<b class='flag-5'>英文版</b>头版头条:“本源悟空”开启中国量子计算新时代" /> </a>
</div> <div class="article" style="padding-left: 0px;">
<h2 class="title">
<a href="https://www.elecfans.com/d/2841294.html" target="_blank" >
广东云<b class='flag-5'>百科</b>技致力于推动智能车联网行业的创新与发展</a>
</h2>
<div class="summary">“ 2024年5月14日广东省物联网协会在广州市组织并主持了由广东云<b class='flag-5'>百科</b>技有限公司为主要完成单位完成的《标准化车联网接入服务关键技术》科技成果评价会。评价委员会由广州大学、华南师范大学、华南理工大学、广东技术师范学院、广东省物联网协会等专家组成。”</div>
<div class="info">
<a class="face s" href="" target="_blank" rel="nofollow">
<img src="" alt="的头像"/>
</a> <span class="fby">发表于</span> 05-16 10:23 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">1445</span>次阅读 </div>
</div> <div class="article" style="padding-left: 0px;">
<h2 class="title">
<a href="https://www.elecfans.com/d/2798559.html" target="_blank" >
OpenAI发布全新搜寻引擎,引领搜索体验新高度</a>
</h2>
<div class="summary">据彭博社报道,OpenAI正在研发一款新型搜索引擎,利用生成式AI实现更人性化的问答互动。据悉,此项产品将于不久后正式上线,用户只需以自然语言提问,ChatGPT即可根据<b class='flag-5'>维基百科</b>及博客文章等资源进行解答。</div>
<div class="info">
<a class="face s" href="" target="_blank" rel="nofollow">
<img src="" alt="的头像"/>
</a> <span class="fby">发表于</span> 05-09 10:40 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">621</span>次阅读 </div>
</div> <div class="article" style="padding-left: 0px;">
<h2 class="title">
<a href="https://www.elecfans.com/d/2798371.html" target="_blank" >
OpenAI或将挑战谷歌,推出基于ChatGPT的搜索引擎</a>
</h2>
<div class="summary">据悉,此项功能将允许用户向ChatGPT提问,获取包括<b class='flag-5'>维基百科</b>内容及博客文章在内的互联网信息。此外,部分版本的产品还将提供文字、图片结合的回答方式。OpenAI还计划扩展现有ChatGPT功能,以容纳新的搜索功能。</div>
<div class="info">
<a class="face s" href="" target="_blank" rel="nofollow">
<img src="" alt="的头像"/>
</a> <span class="fby">发表于</span> 05-09 10:00 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">478</span>次阅读 </div>
</div> <div class="article" style="padding-left: 0px;">
<h2 class="title">
<a href="https://www.elecfans.com/d/2613589.html" target="_blank" >
容<b class='flag-5'>百科</b>技宣布与SK On签订《合作备忘录》</a>
</h2>
<div class="summary">本周,容<b class='flag-5'>百科</b>技宣布与SK On签订《合作备忘录》,双方将围绕三元和磷酸锰铁锂正极开展深度合作。</div>
<div class="info">
<a class="face s" href="" target="_blank" rel="nofollow">
<img src="" alt="的头像"/>
</a> <span class="fby">发表于</span> 03-29 09:56 <!-- <span class="art_click_count" data-id=""></span>次阅读 -->
<span class="sp">•</span><span class="" data-id="">560</span>次阅读 </div>
</div> </div> </div><!-- .main-wrap -->
</article>
<aside class="aside">
<!-- 非专栏 -->
<input type="hidden" name="zl_mp" value="0"> <div id="new-adsm-berry" ></div>
<div id="new-company-berry"></div>
<!-- 推荐文章【主站文章显示这个】 -->
<div class="aside-section">
<div class="aside-section-head">
<h3 class="aside-section-name">精选推荐</h3>
<a class="aside-section-more" id="recMore" href="https://www.elecfans.com/d/">更多<i class="arrow_right"></i></a>
</div>
<div class="aside-section-body">
<ul class="article-rec-tabs">
<li data-index="0" class="is-active">文章</li> <li data-index="2" >资料</li> <li data-index="3" >帖子</li> </ul>
<!-- 文章默认展示 start -->
<ul class="article-rec-content is-active">
<li class="article-rec-item">
<div class="col-right">
<h4 class="text-title">
<a href="https://www.elecfans.com/d/6498518.html" target="_blank">
<span>如何利用平衡-非平衡变压器实现无源模拟输入设计的最佳性能</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://www.elecfans.com/d/user/2599810/" target="_blank">德州仪器</a>
<div class="text-date">51分钟前</div>
<div class="text-view">91 阅读</div>
</div>
</div>
</li><li class="article-rec-item">
<div class="col-right">
<h4 class="text-title">
<a href="https://www.elecfans.com/d/6498375.html" target="_blank">
<span>Gemini Vision + Raspberry Pi 化身“数字导盲犬”?</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://www.elecfans.com/d/c5893124" target="_blank">上海晶珩电子科技有限公司</a>
<div class="text-date">6小时前</div>
<div class="text-view">124 阅读</div>
</div>
</div>
</li><li class="article-rec-item">
<div class="col-right">
<h4 class="text-title">
<a href="https://www.elecfans.com/d/6498339.html" target="_blank">
<span>基于领慧立芯LH001-91芯片的两电极运动心率带方案</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://www.elecfans.com/d/user/5136354/" target="_blank">领慧立芯</a>
<div class="text-date">2小时前</div>
<div class="text-view">186 阅读</div>
</div>
</div>
</li><li class="article-rec-item">
<div class="col-right">
<h4 class="text-title">
<a href="https://www.elecfans.com/d/6498233.html" target="_blank">
<span>拯救NAND/eMMC:延长闪存寿命</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://www.elecfans.com/d/c5534556" target="_blank">ZLG致远电子</a>
<div class="text-date">4小时前</div>
<div class="text-view">206 阅读</div>
</div>
</div>
</li><li class="article-rec-item">
<div class="col-right">
<h4 class="text-title">
<a href="https://www.elecfans.com/d/6498223.html" target="_blank">
<span>反激电路的揭秘:超标噪声的背后秘密</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://bbs.elecfans.com/user/5889250/" target="_blank">jf_43564247</a>
<div class="text-date">4小时前</div>
<div class="text-view">210 阅读</div>
</div>
</div>
</li> </ul> <!-- 文章 end -->
<!-- 方案默认展示 start -->
<!-- 方案 end -->
<ul class="article-rec-content"> <li class="article-rec-item">
<div class="col-left">
<div class="icon-type pdf"></div>
</div>
<div class="col-right">
<h4 class="text-title">
<a href="https://www.elecfans.com/soft/68/guide/2011/20111122253220.html" target="_blank">
<span>STM8S与STM32选型手册</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://bbs.elecfans.com/user/286646/" target="_blank">lanlanw</a>
<div class="text-date">828 KB</div>
<div class="text-date">免费</div>
<div class="text-down">164下载</div>
</div>
</div>
</li><li class="article-rec-item">
<div class="col-left">
<div class="icon-type zip"></div>
</div>
<div class="col-right">
<h4 class="text-title">
<a href="https://www.elecfans.com/soft/Mec/2022/202204261825837.html" target="_blank">
<span>OpenFalcon-SuitAgent获取系统监控数据的代理</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://bbs.elecfans.com/user/2005698/" target="_blank">罗星</a>
<div class="text-date">91.94 MB</div>
<div class="text-date">免费</div>
<div class="text-down">0下载</div>
</div>
</div>
</li><li class="article-rec-item">
<div class="col-left">
<div class="icon-type zip"></div>
</div>
<div class="col-right">
<h4 class="text-title">
<a href="https://www.elecfans.com/soft/Mec/2022/202205121832687.html" target="_blank">
<span>awsbox轻量级的PaaS</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://bbs.elecfans.com/user/2253398/" target="_blank">刘杰</a>
<div class="text-date">0.15 MB</div>
<div class="text-date">免费</div>
<div class="text-down">0下载</div>
</div>
</div>
</li><li class="article-rec-item">
<div class="col-left">
<div class="icon-type zip"></div>
</div>
<div class="col-right">
<h4 class="text-title">
<a href="https://www.elecfans.com/soft/Mec/2022/202206011843499.html" target="_blank">
<span>MumeFM豆瓣FM第三方客户端</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://bbs.elecfans.com/user/2014083/" target="_blank">鼠爱米</a>
<div class="text-date">1.12 MB</div>
<div class="text-date">2积分</div>
<div class="text-down">1下载</div>
</div>
</div>
</li><li class="article-rec-item">
<div class="col-left">
<div class="icon-type zip"></div>
</div>
<div class="col-right">
<h4 class="text-title">
<a href="https://www.elecfans.com/soft/Mec/2022/202206131847466.html" target="_blank">
<span>DrawableToolbox Android的Drawable工具箱</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://bbs.elecfans.com/user/2253405/" target="_blank">张强</a>
<div class="text-date">2.67 MB</div>
<div class="text-date">2积分</div>
<div class="text-down">1下载</div>
</div>
</div>
</li> </ul> <!-- 资料 end -->
<!-- 帖子默认展示 start -->
<ul class="article-rec-content"> <li class="article-rec-item">
<div class="col-right">
<h4 class="text-title">
<a href="https://bbs.elecfans.com/jishu_2482744_1_1.html" target="_blank">
<span>香蕉派 BPI-CM6 工业级核心板采用进迭时空K1 8核 RISC-V 芯片开发</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://bbs.elecfans.com/user/1844451/" target="_blank">sinovoip</a>
<div class="text-date">16小时前</div>
<div class="text-view">47 阅读</div>
</div>
</div>
</li><li class="article-rec-item">
<div class="col-right">
<h4 class="text-title">
<a href="https://bbs.elecfans.com/jishu_2482732_1_1.html" target="_blank">
<span>开源项目!如何制作一个手机用的电动3D扫描转盘</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://bbs.elecfans.com/user/1811612/" target="_blank">听我讲</a>
<div class="text-date">16小时前</div>
<div class="text-view">128 阅读</div>
</div>
</div>
</li><li class="article-rec-item">
<div class="col-right">
<h4 class="text-title">
<a href="https://bbs.elecfans.com/jishu_2482728_1_1.html" target="_blank">
<span>DAC 与 ADC:数字与模拟的往复之旅</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://bbs.elecfans.com/user/1811662/" target="_blank">远不及你</a>
<div class="text-date">16小时前</div>
<div class="text-view">122 阅读</div>
</div>
</div>
</li><li class="article-rec-item">
<div class="col-right">
<h4 class="text-title">
<a href="https://bbs.elecfans.com/jishu_2482700_1_1.html" target="_blank">
<span>超高性价比掌上型HIL丨EGBox Nano正式发布</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://bbs.elecfans.com/user/5426653/" target="_blank">CC_Tasya</a>
<div class="text-date">16小时前</div>
<div class="text-view">128 阅读</div>
</div>
</div>
</li><li class="article-rec-item">
<div class="col-right">
<h4 class="text-title">
<a href="https://bbs.elecfans.com/jishu_2482716_1_1.html" target="_blank">
<span>数字电路—10、组合逻辑电路的分析与设计</span>
</a>
</h4>
<div class="text-content">
<a class="text-name" href="https://bbs.elecfans.com/user/6762743/" target="_blank">jf_79711045</a>
<div class="text-date">16小时前</div>
<div class="text-view">156 阅读</div>
</div>
</div>
</li> </ul> <!-- 帖子 end -->
<!-- 视频 start -->
<!-- 视频 end -->
<!-- 话题 start -->
<!-- 话题 end -->
</div>
</div>
<!-- <div id="new-company-zone"></div> -->
<div id="new-course-berry" ></div>
<!-- 推荐专栏 -->
<div class="aside-section dzs-article-column">
<div class="aside-section-head">
<h3 class="aside-section-name">推荐专栏</h3>
<a class="aside-section-more" href="https://www.elecfans.com/d/column">更多<i class="arrow_right"></i></a>
</div>
<div class="aside-section-body">
<ul class="dzs-article-column-list"></ul>
</div>
</div> <div id="new-webinar-berry"></div>
<div id="IndexRightBottom"></div>
</aside>
</section>
<!-- Page #content End -->
<input type="hidden" name="aid" id="webID" value="808775">
<!-- $article['store_flag'] = 15 为企业号 -->
<input type="hidden" class="store_flag" value="0">
<input type="hidden" class="evip_type" value="0">
<!--企业号文章id -->
<input type="hidden" class="evip_article_id" value="">
<!-- 企业号id -->
<input type="hidden" class="evip_id" value="">
<!--- 企业号是否付费1-是 0-否 --->
<input type="hidden" name="isPayEvip" class="isPayEvip" value="0">
<input type="hidden" class="vip-limit-read" value="0">
<input type="hidden" id="headerType" value="data">
<input type="hidden" id="details_right_hero" value="true">
<input type="hidden" id="currentUserID" value="" />
<div class="gather-bottom"></div>
<link rel="stylesheet" href="/static/footer/footer.css?20230919" />
<div class="public-footer">
<div class="public-footer__hd">
<dl>
<dt>华秋(原“华强聚丰”):</dt>
<dd>电子发烧友</dd>
<dd>华秋开发</dd>
<dd>华秋电路(原"华强PCB")</dd>
<dd>华秋商城(原"华强芯城")</dd>
<dd>华秋智造</dd>
</dl>
<dl>
<dd><a target="_blank" href="https://bbs.elecfans.com/infocenter.php" rel="nofollow">My ElecFans </a></dd>
<dd><a target="_blank" href="//www.elecfans.com/app/"> APP </a></li>
<dd><a target="_blank" href="https://www.elecfans.com/about/sitemap.html">网站地图</a></dd>
</dl>
</div>
<div class="public-footer__main">
<dl>
<dt>设计技术</dt>
<dd><a href="//www.elecfans.com/pld/" target="_blank">可编程逻辑</a></dd>
<dd><a href="//www.elecfans.com/article/83/" target="_blank">电源/新能源</a></dd>
<dd><a href="//www.elecfans.com/article/88/142/" target="_blank">MEMS/传感技术</a></dd>
<dd><a href="//www.elecfans.com/article/85/" target="_blank">测量仪表</a></dd>
<dd><a href="//www.elecfans.com/emb/" target="_blank">嵌入式技术</a></dd>
<dd><a href="//www.elecfans.com/article/90/155/" target="_blank">制造/封装</a></dd>
<dd><a href="//www.elecfans.com/analog/" target="_blank">模拟技术</a></dd>
<dd><a href="//www.elecfans.com/tongxin/rf/" target="_blank">RF/无线</a></dd>
<dd><a href="//www.elecfans.com/emb/jiekou/" target="_blank">接口/总线/驱动</a></dd>
<dd><a href="//www.elecfans.com/emb/dsp/" target="_blank">处理器/DSP</a></dd>
<dd><a href="//www.elecfans.com/bandaoti/eda/" target="_blank">EDA/IC设计</a></dd>
<dd><a href="//www.elecfans.com/consume/cunchujishu/" target="_blank">存储技术</a></dd>
<dd><a href="//www.elecfans.com/xianshi/" target="_blank">光电显示</a></dd>
<dd><a href="//www.elecfans.com/emc_emi/" target="_blank">EMC/EMI设计</a></dd>
<dd><a href="//www.elecfans.com/connector/" target="_blank">连接器</a></dd>
</dl>
<dl>
<dt>行业应用</dt>
<dd><a href="//www.elecfans.com/led/" target="_blank">LEDs </a></dd>
<dd><a href="//www.elecfans.com/qichedianzi/" target="_blank">汽车电子</a></dd>
<dd><a href="//www.elecfans.com/video/" target="_blank">音视频及家电</a></dd>
<dd><a href="//www.elecfans.com/tongxin/" target="_blank">通信网络</a></dd>
<dd><a href="//www.elecfans.com/yiliaodianzi/" target="_blank">医疗电子</a></dd>
<dd><a href="//www.elecfans.com/rengongzhineng/" target="_blank">人工智能</a></dd>
<dd><a href="//www.elecfans.com/vr/" target="_blank">虚拟现实</a></dd>
<dd><a href="//www.elecfans.com/wearable/" target="_blank">可穿戴设备</a></dd>
<dd><a href="//www.elecfans.com/jiqiren/" target="_blank">机器人</a></dd>
<dd><a href="//www.elecfans.com/application/Security/" target="_blank">安全设备/系统</a></dd>
<dd><a href="//www.elecfans.com/application/Military_avionics/" target="_blank">军用/航空电子</a></dd>
<dd><a href="//www.elecfans.com/application/Communication/" target="_blank">移动通信</a></dd>
<dd><a href="//www.elecfans.com/kongzhijishu/" target="_blank">工业控制</a></dd>
<dd><a href="//www.elecfans.com/consume/bianxiedianzishebei/" target="_blank">便携设备</a></dd>
<dd><a href="//www.elecfans.com/consume/chukongjishu/" target="_blank">触控感测</a></dd>
<dd><a href="//www.elecfans.com/iot/" target="_blank">物联网</a></dd>
<dd><a href="//www.elecfans.com/dianyuan/diandongche_xinnenyuan/" target="_blank">智能电网</a></dd>
<dd><a href="//www.elecfans.com/blockchain/" target="_blank">区块链</a></dd>
<dd><a href="//www.elecfans.com/xinkeji/" target="_blank">新科技</a></dd>
</dl>
<dl>
<dt>特色内容</dt>
<dd><a href="//www.elecfans.com/d/column/" target="_blank">专栏推荐</a></dd>
<dd><a target="_blank" href="https://t.elecfans.com/">学院</a></dd>
<dd><a target="_blank" href="https://bbs.elecfans.com/group_716">设计资源</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/technical/">设计技术</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/baike/">电子百科</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/dianzishipin/">电子视频</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/yuanqijian/">元器件知识</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/tools/">工具箱</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/vip/#choose">VIP会员</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/article/special/">最新技术文章</a></dd>
</dl>
<dl>
<dt>社区</dt>
<dd><a target="_blank" href="https://bbs.elecfans.com/group">小组</a></dd>
<dd><a target="_blank" href="https://bbs.elecfans.com/">论坛</a></dd>
<dd><a target="_blank" href="https://bbs.elecfans.com/ask.html">问答</a></dd>
<dd><a target="_blank" href="https://bbs.elecfans.com/try.html">评测试用</a></dd>
<dt><a target="_blank" href="https://q.elecfans.com/">企业服务</a></dt>
<dd><a target="_blank" href="https://q.elecfans.com/p/">产品</a></dd>
<dd><a target="_blank" href="https://q.elecfans.com/soft/">资料</a></dd>
<dd><a target="_blank" href="https://q.elecfans.com/d/">文章</a></dd>
<dd><a target="_blank" href="https://q.elecfans.com/sol/">方案</a></dd>
<dd><a target="_blank" href="https://q.elecfans.com/c/">企业</a></dd>
</dl>
<dl>
<dt>供应链服务</dt>
<dd><a target="_blank" href="//www.elecfans.com/kf/">硬件开发</a></dd>
<dd><a target="_blank" href="https://www.hqpcb.com/">华秋电路</a></dd>
<dd><a target="_blank" href="https://www.hqchip.com/">华秋商城</a></dd>
<dd><a target="_blank" href="https://smt.hqchip.com/">华秋智造</a></dd>
<dd><a target="_blank" href="https://www.nextpcb.com/">nextPCB</a></dd>
<dd><a target="_blank" href="https://www.hqchip.com/bom.html">BOM配单</a></dd>
<dt>媒体服务</dt>
<dd><a target="_blank" href="//www.elecfans.com/about/service.html">网站广告</a></dd>
<dd><a target="_blank" href="https://webinar.elecfans.com/">在线研讨会</a></dd>
<dd><a target="_blank" href="https://event.elecfans.com/">活动策划</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/news/">新闻发布</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/xinpian/ic/">新品发布</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/quiz/">小测验</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/contest/">设计大赛</a></dd>
</dl>
<dl>
<dt>华秋</dt>
<dd><a target="_blank" href="//www.elecfans.com/about/" rel="nofollow">关于我们</a></dd>
<dd><a target="_blank" href="https://www.hqchip.com/help/factsheet.html" rel="nofollow">投资关系</a></dd>
<dd><a target="_blank" href="https://www.hqchip.com/help/news/lists.html" rel="nofollow">新闻动态</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/about/zhaopin.html" rel="nofollow">加入我们</a></dd>
<dd><a target="_blank" href="//www.elecfans.com/about/contact.html" rel="nofollow">联系我们</a></dd>
<dd><a target="_blank" href="/about/tousu.html" rel="nofollow">举报投诉</a></dd>
<dt>社交网络</dt>
<dd><a target="_blank" href="https://weibo.com/elecfanscom" rel="nofollow">微博</a></dd>
<dt>移动端</dt>
<dd><a target="_blank" href="//www.elecfans.com/app/">发烧友APP</a></dd>
<dd><a target="_blank" href="https://yingsheng.elecfans.com/app?eleclog">硬声APP</a></dd>
<dd><a target="_blank" href="https://m.elecfans.com/">WAP</a></dd>
</dl>
<dl>
<dt>联系我们</dt>
<dd class="small_tit">广告合作</dd>
<dd>王婉珠:<a href="mailto:wangwanzhu@elecfans.com">wangwanzhu@elecfans.com</a></dd>
<dd class="small_tit">内容合作</dd>
<dd>黄晶晶:<a href="mailto:huangjingjing@elecfans.com">huangjingjing@elecfans.com</a></dd>
<dd class="small_tit">内容合作(海外)</dd>
<dd>张迎辉:<a href="mailto:mikezhang@elecfans.com">mikezhang@elecfans.com</a></dd>
<dd class="small_tit">供应链服务 PCB/IC/PCBA</dd>
<dd>江良华:<a href="mailto:lanhu@huaqiu.com">lanhu@huaqiu.com</a></dd>
<dd class="small_tit">投资合作</dd>
<dd>曾海银:<a href="mailto:zenghaiyin@huaqiu.com">zenghaiyin@huaqiu.com</a></dd>
<dd class="small_tit">社区合作</dd>
<dd>刘勇:<a href="mailto:liuyong@huaqiu.com">liuyong@huaqiu.com</a></dd>
</dl>
<ul class="qr-code">
<li>
<p>关注我们的微信</p>
<img src="/static/main/img/elecfans_code.jpg" alt="关注我们的微信" />
</li>
<li>
<p>下载发烧友APP</p>
<img src="/static/main/img/elec_app_code.jpg" alt="下载发烧友APP" />
</li>
<li>
<p>电子发烧友观察</p>
<img src="/static/main/img/elec_focus_code.jpg" alt="电子发烧友观察" />
</li>
</ul>
</div>
<div class="public-footer__ft">
<div class="public-footer__ft-inner">
<a href="https://www.huaqiu.com/" target="_blank" class="public-footer__ft-logo">
<img class="is-default" src="/static/footer/image/footer-01-default.png" alt="华秋电子" />
<img class="is-hover" src="/static/footer/image/footer-01.png" alt="华秋电子" />
</a>
<div class="public-footer__ft-right">
<div class="public-footer__ft-item public-footer__ft-elecfans">
<div class="hd">
<a href="https://www.elecfans.com/" target="_blank">
<!-- <img class="is-default" src="/static/footer/image/footer-02-default.png" alt="华秋发烧友">
<img class="is-hover" src="/static/footer/image/footer-02.png" alt="华秋发烧友"> -->
<div class="site_foot_img">
<img src="/static/footer/image/elecfans-logo.svg" alt="华秋发烧友">
</div>
<div class="site_foot_text">电子工程师社区</div>
</a>
</div>
</div>
<div class="public-footer__ft-item public-footer__ft-hqpcb">
<div class="hd">
<a href="https://www.hqpcb.com/" target="_blank">
<div class="site_foot_img">
<img src="/static/footer/image/hqpcb-logo.svg" alt="华秋电路">
</div>
<div class="site_foot_text">1-32层PCB打样·中小批量</div>
</a>
</div>
</div>
<div class="public-footer__ft-item public-footer__ft-hqchip">
<div class="hd">
<a href="https://www.hqchip.com/" target="_blank">
<div class="site_foot_img">
<img src="/static/footer/image/hqchip-logo.svg" alt="华秋商城">
</div>
<div class="site_foot_text">元器件现货·全球代购·SmartBOM</div>
</a>
</div>
</div>
<div class="public-footer__ft-item public-footer__ft-smt">
<div class="hd">
<a href="https://smt.hqchip.com/" target="_blank">
<div class="site_foot_img">
<img src="/static/footer/image/smt-logo.svg" alt="华秋智造">
</div>
<div class="site_foot_text">SMT贴片·PCBA加工</div>
</a>
</div>
</div>
<div class="public-footer__ft-item public-footer__ft-nextpcb">
<div class="hd">
<a href="javascript:void(0)" class="next-pck-link">
<div class="site_foot_img">
<img src="/static/footer/image/nextpcb-logo.svg" alt="NextPCB">
</div>
<div class="site_foot_text">PCB Manufacturer</div>
</a>
</div>
</div>
<ul class="public-footer__ft-text">
<li><a href="https://www.huaqiu.com/about/groupoverview" target="_blank">华秋简介</a></li>
<li><a href="https://www.huaqiu.com/news" target="_blank">企业动态</a></li>
<li><a href="https://www.huaqiu.com/about/contactus" target="_blank">联系我们</a></li>
<li><a href="https://www.huaqiu.com/about/corporateculture" target="_blank">企业文化</a></li>
<li><a href="https://www.huaqiu.com/about/promotionalfilm" target="_blank">企业宣传片</a></li>
<li><a href="https://www.huaqiu.com/jobs" target="_blank">加入我们</a></li>
</ul>
</div>
</div>
</div>
<div class="public-footer__copyright">
<p>版权所有 © 湖南华秋数字科技有限公司 </p>
<p>长沙市望城经济技术开发区航空路6号手机智能终端产业园2号厂房3层(0731-88081133)</p>
<a href="https://www.elecfans.com/">电子发烧友</a>
<a href="https://www.elecfans.com/" target="_blank"><strong>(电路图)</strong></a>
<a href="https://beian.mps.gov.cn/#/query/webSearch?code=43011202000918" target="_blank" rel="nofollow">湘公网安备43011202000918</a>
<!-- <a href="https://www.elecfans.com/about/edi.html" target="_blank">电信与信息服务业务经营许可证:合字B2-20210191</a> -->
<a href="http://szcert.ebs.org.cn/c6db625a-ba09-414a-bba4-f57240baac9c6" target="_blank" rel="nofollow">
<img src="//skin.elecfans.com/images/ebsIcon.png" alt="工商网监认证">工商网监
</a>
<a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank" rel="nofollow">湘ICP备2023018690号-1</a>
</div>
</div>
<div><input type="hidden" value="0" name="arc_relate_vid"></div>
<link rel="stylesheet" href="/webapi/public/project/idt/iconfont/iconfont.css">
<script src="https://skin.elecfans.com/js/elecfans_jquery.js"></script>
<script src="https://staticd.elecfans.com/js/plugins.js"></script>
<script>
(function () {
postmessageScript()
function postmessageScript() {
/*
* postmessage
*/
var con_net = ""
if (window.location.href.indexOf(".net") > -1) {
con_net = "net"
} else {
con_net = "com"
}
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://passport.elecfans.' + con_net + '/public/pc/plugin/postmessage.js';
var body = document.getElementsByTagName("body").item(0);
body.appendChild(script);
}
/*
* 推荐文章无图时样式修改
* */
$(".article .thumb").each(function () {
if ($(this).find('img').attr('src') == "") {
$(this).find('img').remove();
$(this).parent().css('padding-left', '0px');
}
});
/*百度分享*/
window._bd_share_config = {
common: {
bdText: '', //自定义分享内容
bdDesc: '', //自定义分享摘要
bdPic: ''
},
share: [{
"bdSize": 60
}]
}
with(document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = ''];
})();
var add_url = '/d/article/write/';
var check_allow = "/d/api/iscantalk.html";
var click_items_length = $('.art_click_count').length;
if (click_items_length > 0) {
var id_str = '';
$('.art_click_count').each(function () {
id_str += $(this).attr('data-id') + ',';
})
var url = "/d/api/getclickbyids.html";
var id_data = 'id_str=' + id_str;
$.ajax({
url: url,
data: id_data,
type: 'post',
dataType: 'json',
success: function (re) {
if (re.list.length >= 1) {
var list = re.list;
for (var i in list) {
var temp_id = list[i]['id'];
var temp_span = $(".art_click_count[data-id=" + temp_id + "]")
temp_span.html(list[i]['click']);
}
}
}
})
}
function CheckLogin() {
//alert(11)
now_uid = '';
var ElecfansApi_checklogin = '/webapi/passport/checklogin';
var logout_url = "/d/login/logout.html";
var logout_url = 'https://bbs.elecfans.com/member.php?mod=logging&action=logout&refer=front';
$.get(ElecfansApi_checklogin, function (data, textStatus) {
if (data != "") {
EchoLoginInfo(data);
CheckEmailInfo(data);
data = $.parseJSON(data);
now_uid = data.uid;
/*var login_content = '<a href="/d/article/write/" class="btn write-article"><i class="icon-new-message"></i> 写文章</a><div class="mine" id="mine"><a class="item user" href="/d/user/'+now_uid+'/"><img src="'+data.avatar+'" width="33" height="33" /> <strong>'+data.username+'</strong></a><div id="mymenu" class="my-menu"><a class="logout" href="'+logout_url+'" ><i class="icon-switch"></i> 退出</a></div></div>';*/
var login_content =
'<a href="javascript:;" class="btn write-article" id="write_btn"><i class="icon-new-message"></i> 写文章</a><div class="mine" id="mine"><a class="item user" href="/d/user/' +
now_uid + '/"><img src="' + data.avatar + '" width="33" height="33" /> <strong>' + data
.username +
'</strong></a><div id="mymenu" class="my-menu"><a class="setting" href="https://bbs.elecfans.com/home.php?mod=spacecp" target="_blank" ><i class="icon-cog"></i> 设置</a><a class="logout" href="' +
logout_url + '" ><i class="icon-switch"></i> 退出</a></div></div>';
$('#login_area').html(login_content);
var win_width = $(window).width();
if (win_width > 1000) {
$("#mine").mouseDelay(200).hover(function () {
$("#mymenu").show();
}, function () {
$("#mymenu").hide();
});
};
$('.newheader2021_tip_msg .tip_msg_num').text(data.msgnum).css({
'display': 'inline'
});
$('.no_login_2021').hide();
$('.yes_login_2021_more').css({
'display': 'flex'
});
$('.yes_login_2021').attr('href', 'https://bbs.elecfans.com/user/' + data.uid);
$('.yes_login_2021 .vtm').attr('src', data.avatar);
var yesLoginMoreBox = $('.yes_login_2021_more_box');
yesLoginMoreBox.find('.header_logo_2021').attr('href', 'https://bbs.elecfans.com/user/' + data
.uid);
yesLoginMoreBox.find('.header_logo_2021 img').attr('src', data.avatar);
yesLoginMoreBox.find('.header_logo_right_2021').attr('href', 'https://bbs.elecfans.com/user/' +
data.uid);
yesLoginMoreBox.find('.usename_href_2021').attr('href', 'https://bbs.elecfans.com/user/' + data
.uid).text(data.username);
$(".header_bottom_2021 .favorite_articles_2021").attr("href", "https://bbs.elecfans.com/user/" +
data.uid + "/favorite_articles?from=daohang");
$(".header_bottom_2021 .spacecp_2021").attr("href",
"https://bbs.elecfans.com/home.php?mod=space&uid=" + data.uid +
"&do=profile&from=daohang");
if (data.vip == 1) {
yesLoginMoreBox.find('.header_VIP_2021').hide();
yesLoginMoreBox.find('.vip_icon img').attr('src',
'https://skin.elecfans.com/images/2021-soft/vip_icon2.png');
};
} else {
remainLog();
var content =
'<a class="item special-login " href="javascript:;" title="">登录</a><a class="item" href="https://bbs.elecfans.com/member.php?mod=reg" target="_blank">注册</a>';
$('#login_area').html(content);
//.send-write,.absolute-write
$(".special-login").click(function (e) {
$.tActivityLogin();
return false;
});
$('.no_login_2021').click(function () {
$.ssoDialogLogin();
})
}
});
}
function getCookie(name) {
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if (arr = document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
//添加提示注册引导
function remainLog() {
if ($("#remainLogBox").length > 0) {
return false;
}
var getRemainShow = getCookie('REMAINSHOWLOG');
/*设置注册框的主题内容*/
var content = '<div id="remainLogBox">' +
'<div class="sso_layer"></div>' +
'<div class="remain-log clearfix">' +
'<div class="fl LogBgPart">' +
'<h3>电子发烧友</h3> ' +
'<p>中国电子工程师最喜欢的网站</p> ' +
'<ul>' +
'<li>与<span id="downNum">2931785</span>位工程师会员交流学习</li>' +
'<li>获取您个性化的科技前沿技术信息</li> ' +
'<li>参加活动获取丰厚的礼品</li> ' +
'</ul>' +
'</div>' +
'<div class="fr LogRightPart">' +
'<div id="colseRemainLog"><img src="https://skin.elecfans.com/images/remain_log_colse.png"></div>' +
'<div id="ssoScrollLog"></div>' +
'</div>' +
'</div>' +
'</div>';
$("body").append(content);
$("#colseRemainLog").click(function () {
var Days = 1;
var exp = new Date();
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
/*存储cookie 用于点击关闭后一天不显示*/
document.cookie = 'REMAINSHOWLOG' + "=" + '1' + ";path= " + "/" + ";expires=" + exp.toGMTString();
$("#remainLogBox").remove();
$("html").css('overflow-y', 'auto');
});
setTimeout(function () {
var netHost = window.location.host.split(".");
$.ajax({
url: 'https://www.elecfans.' + netHost[2] + '/webapi/passport/totalaccount',
dataType: 'json',
success: function (data) {
if (data.status == "successed") {
$("#downNum").html(data.data.num);
}
}
})
}, 1000);
var getPathHref = location.pathname;
/*判断是否是首页*/
if (getPathHref.length > 1 && getPathHref != "/index.html" && ($(".side-box.author-article").length > 0 || $(
".article .article-content").length > 0)) {
var getLoadPageNum = getCookie('LoadPageNum');
if (getLoadPageNum) {
var LoadPageUrl = getCookie('LoadPageUrl');
if (LoadPageUrl != location.pathname) {
$(window).scroll(function () {
/*滚动一屏页面后显示*/
if ($(window).scrollTop() > ($(window).height() / 2)) {
if (getRemainShow != 1) {
if ($("#remainLogBox").length > 0) {
$("#remainLogBox").show();
$("html").css('overflow-y', 'hidden');
}
}
}
})
}
} else {
var Days = 1;
var exp = new Date();
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
/*存储cookie 用于点击关闭后一天不显示*/
document.cookie = 'LoadPageNum' + "=" + '1' + ";path= " + "/" + ";expires=" + exp.toGMTString();
var LoadPageUrl = getCookie('LoadPageUrl');
if (!LoadPageUrl) {
document.cookie = 'LoadPageUrl' + "=" + location.pathname + ";path= " + "/" + ";expires=" + exp
.toGMTString();
}
}
}
}
$(function () {
var follow_wrap = $(".author-collect");
var now_uid = "";
var face_src = "";
var getFollowNum = $(".followNum strong").html();
//关注
$(window).on('click', '.author-collect', function () {
if (now_uid == '') {
$.tActivityLogin();
return false;
}
if($(".store_flag").val() == 15){ //企业号文章
if($(".evip_id").length == 0){return false}
if ($(this).attr('id') == 'follow') {
$.post('/webapi/home/evipArticle/followEvip', {
evip_id : $(".evip_id").val(),
action:'follow'
}, function (data) {
//返回的数据格式:
if (data.code == "0") {
follow_wrap.html('已关注').attr('id', 'cancelFollow').addClass(
'is-active');
}else{
alert(data.msg);
}
});
}else{
$.post('/webapi/home/evipArticle/followEvip',{
evip_id : $(".evip_id").val(),
action:'cancel' }, function (data) {
//返回的数据格式:
if (data.code == "0") {
follow_wrap.html('关注').attr('id', 'follow').removeClass(
"is-active");
}else{
alert(data.msg);
}
});
}
}else{
if ($(this).attr('id') == 'follow') {
$.post('/d/user/follow', {
tuid: article_user_id
}, function (data) {
//返回的数据格式:
if (data.status == "successed") {
$(".followNum strong").html(++getFollowNum);
// follow_wrap.html('已关注').attr('id','cancelFollow').css('background','#999');
follow_wrap.html('已关注').attr('id', 'cancelFollow').addClass(
'is-active');
var follow_user = '<a href="/d/user/' + now_uid + '/" data-uid="' +
now_uid + '" class="face" rel="nofollow"><img src="' + face_src +
'"></a>';
$('#follow_list').append(follow_user);
}
if (data.status == "failed") {
alert(data.msg);
}
});
}else{
$.post('/d/user/cancelFollow',{tuid: article_user_id }, function (data) {
//返回的数据格式:
if (data.status == "successed") {
// follow_wrap.html('关注').attr('id', 'follow').css('background', '#f90');
follow_wrap.html('关注').attr('id', 'follow').removeClass(
"is-active");
$(".followNum strong").html(--getFollowNum);
$('#follow_list .face').each(function () {
var target_uid = $(this).attr('data-uid');
if (target_uid == now_uid) {
$(this).remove();
}
})
}
if (data.status == "failed") {
alert(data.msg);
}
});
}
}
});
});
// 绑定手机号
$(".send-write").click(function () {
$.ajax({
url: '/webapi/passport/checklogin',
type: "get",
dataType: 'json',
success: function (login) {
if (login == null) {
$.ssoDialogLogin();
} else {
isVerification(function () {
window.open("/d/article/write/")
})
}
}
})
});
/*
* ********: 验证手机号
* callback: 验证成功的回调函数
*/
// isVerification(function(){
// //完成手机号验证 后判断是否完善资料
// isPerfectInfo($,document,function(){},false,true)
// })
function isVerification_d(callback, article_write) {
var passport = null;
var bbs_host = null;
if (location.host.indexOf(".com") > 0) {
passport = window.location.protocol + "//passport.elecfans.com";
www_host = window.location.protocol + "//www.elecfans.com";
} else {
passport = window.location.protocol + "//passport.elecfans.net";
www_host = window.location.protocol + "//www.elecfans.net";
}
$.ajax({
url: www_host + '/webapi/passport/checklogin',
type: "get",
dataType: 'json',
success: function (login) {
if (login) {
$.ajax({
url: www_host + '/webapi/Mcenter/sms/getvalidstatus',
type: "post",
dataType: 'json',
success: function (res) {
var phoneTxt =
"<p style='text-indent: 20px;margin-bottom: 10px;'>您好!为确保您账户的安全及正常使用,依《网络安全法》相关要求,4月22日起账户需绑定手机,如您还未绑定,请尽快完成,感谢您的理解及支持!</p>"
var setHtml = function () {
var _iframe = null;
if (article_write === "article_write") {
_iframe =
'<div class="pop_verification_mask"><div class="pop_verification phone_verification">' +
'<h6>请验证手机<i class="close_icon_d close_verification">╳</i></h6>' +
'<div class="desc_txt">尊敬的用户:<br>' + phoneTxt +
'</div>' +
'<iframe class="phone_iframe" width="520" height="580" src="' +
passport +
'/Security/validatePhone/siteid/14.html"></iframe>' +
'</div></div>'
$('body').append(_iframe).ready(function () {
$(".close_verification:eq(0)").click(
function (e) {
e.stopPropagation();
$.ajax({
url: www_host +
'/webapi/Mcenter/sms/getvalidstatus',
type: "post",
dataType: 'json',
success: function (
res) {
if (res.data
.phonestatus ==
0) {
layer
.msg(
"请先验证手机号"
)
} else {
$(".pop_verification_mask")
.remove()
}
}
})
})
})
} else {
_iframe =
'<div class="pop_verification_mask"><div class="pop_verification phone_verification">' +
'<h6>请验证手机<i class="close_icon_d close_verification">╳</i></h6>' +
'<div class="desc_txt">尊敬的用户:<br>' + phoneTxt +
'</div>' +
'<iframe class="phone_iframe" id="verificationIframe" width="488" height="580" src="' +
passport +
'/Security/validatePhone/siteid/14.html"></iframe>' +
'</div></div>'
$('body').append(_iframe).ready(function () {
$(".close_verification:eq(0)").click(
function (e) {
e.stopPropagation();
$(".pop_verification").remove()
if ($(".pop_verification_mask")
.length >= 1) {
$(".pop_verification_mask")
.remove()
}
});
})
}
}
//已经验证手机号
if (res.data.phonestatus == 1) {
if (typeof callback === "function") {
callback()
}
} else {
setHtml(); //没有完成验证先弹出手机验证
// 接受数据
// $.receiveMessage(function(msg){
// // 接收到纯数字时设置iframe的高度
// if($.isNumeric(msg.data)){
// }else if(typeof(msg.data)=="string"){
// }
// }, passport);
}
}
})
} else {
//调用登录
$.ssoDialogLogin(); //单点登录
return false; //弹出登录
}
}
})
}
$('body').css({
'background-color': '#fff'
});
$('.newheader2021').css({
'border-bottom': 'solid 1px #e5e5e5'
});
</script>
<script src="https://staticd.elecfans.com/js/common.js?20230818"></script>
<script src="https://staticd.elecfans.com/plugins/layer/layer.js"></script>
<script src="https://skin.elecfans.com/js/elecfans/road_ad.js?20230818" defer></script>
<script src="https://skin.elecfans.com/js/elecfans/organizing/js/organizing.js?20230710"></script>
<script src="https://skin.elecfans.com/js/elecfans/interview.js?20230724"></script>
<script type="text/javascript" src="https://staticd.elecfans.com/plugins/layer/layer.js"></script>
<script type="text/javascript" src="/static/vendor/clipboard.min.js"></script>
<script type="text/javascript" src="https://staticd.elecfans.com/js/share-web.js?20220223"></script>
<script>
var myface = "https://bbs.elecfans.com/uc_server/data/avatar/000/00/00/00_avatar_small.jpg";
var myname = "";
var article_title = '如何用Python编程下载和解析英文版维基百科';
var article_id = 808775;
var article_user_id = 2788889;//文章作者ID
var article_user_name = 'MqC7_CAAI_1981';
var rightHeightChange = false;
//专栏用户数据获取
var zlMp = $('input[name="zl_mp"]').val();
//是专栏用户
if (zlMp) {
$.ajax({
url:"/d/Column/getUserCount",
type:'get',
data:{uid:article_user_id},
success:function(res){
if(res.code === 0){
//修改数量
$('.column-article-count').text(res.data.article);
$('.column-view-count').text(res.data.view);
$('.column-follow-count').text(res.data.follow_count);
$('.column-praise-count').text(res.data.all_click);
} else {
console.log(res);
}
}
})
}
if(article_id) {
dIsOriginal()
}
//原创标识接口
function dIsOriginal() {
$.ajax({
url:"/webapi/arcinfo/isOriginal",
type:'get',
data:{aid:article_id},
success:function(re){
var res=JSON.parse(re)
if(res.status==="successed"){
//1原创标识
if(res.data.is_original==1){
$(".yuanchuan_images").show()
}else{
$(".yuanchuan_images").remove()
}
}else{
$(".yuanchuan_images").remove()
}
}
});
}
$('#delete_art').click(function(){
var art_id = $(this).attr('data-id');
var url = '/d/article/delete';
var data = "id="+art_id;
layer.confirm('确定要删除?', {
btn: ['取消','确定'] //按钮
}, function(){
layer.msg('已经取消', {icon: 1});
}, function(){
$.ajax({
url:url,
type:'post',
data:data,
success:function(re){
if(re.error_code==200){
var uid = re.uid;
var lurl = '/d/user/'+uid+'/';
layer.msg('已经删除', {icon: 1});
window.location.href = lurl;
}else{
layer.msg(re.msg,{icon:1});
}
}
})
});
});
</script>
<script src="https://staticd.elecfans.com/js/xgPlayer.js"></script>
<script src="https://staticd.elecfans.com/js/article.js?v=20240328"></script>
<script src="https://staticd.elecfans.com/js/column_article.js?v=c202307271023"></script>
<script>
$(document).ready(()=>{
/**推荐文章 */
$.ajax({
url: "/d/article/getArcList",
type: "get",
data: { type: "recommend", page: 1, size: 5 },
success: function (res) {
if (res.code == 0) {
renderArticle(res.data);
rightHeightChange = true
} else {
$(".dzs-article-recom").hide();
}
},
});
/**推荐企业号 */
if($(".store_flag").val() == 15){
$.ajax({
url: "/webapi/home/evip/getRecommendFollow",
type: "get",
success: function (res) {
if(res.code == 0 && Array.isArray(res.data)){
var qyStr = ''
for(var r = 0;r<res.data.length;r++){
var qyItem =res.data[r];
var jumpUrl = window.location.origin + '/d/c' + qyItem.apply_uid;
var itemIcon = '';
var tagsArr = (qyItem.belong_to_industry || []).split(",")
tagsArr = tagsArr.splice(0,3)
var is_follow = qyItem.is_follow == 1?'focus':'unFocus'
if(qyItem.ver_id == 1 || qyItem.ver_id == 2){
itemIcon= '/static/main/img/qyh/pro_vip_sm.png'
}else if(qyItem.ver_id == 3){
itemIcon= '/static/main/img/qyh/enjoy_vip_sm.png'
} else {
itemIcon= '/static/main/img/qyh/common_vip_sm.png'
}
qyStr +='<li><a href="'+jumpUrl+'" target="_blank" class="block" >';
qyStr += '<div class="enterInfo">'
qyStr += '<div class="enterImg">'
qyStr += '<img src="'+qyItem.enterprise_head_url+'" class="companyImg objectFit"/>'
qyStr += '</div>'
qyStr += '<div class="enterDes">'
qyStr += '<div class="name">'
qyStr +='<img src="'+itemIcon+'" alt="">'
qyStr +='<h5>'+qyItem.enterprise_name +'</h5>'
qyStr +='</div>'
qyStr +='<div class="companyName">'+qyItem.company_name +'</div>'
qyStr += '<div class="tags">'
for(var t = 0;t<tagsArr.length;t++){
qyStr += '<span>'+tagsArr[t]+'</span>'
}
qyStr += '</div>'
qyStr += '</div>'
qyStr += '</div>'
qyStr += '<div class="industry">'
qyStr += '<div class="view">'
qyStr += '<span>'+qyItem.archives_count+'内容</span>'
qyStr += '<span>'+ qyItem.view_count +'浏览量</span>'
qyStr += '<span>'+qyItem.follow_count +'粉丝</span>'
qyStr += '</div>'
if(qyItem.is_follow == 1){
qyStr += '<span class="qyhFocus focus" data-qyId="'+qyItem.id +'"></span>'
}else{
qyStr += '<span class="qyhFocus unFocus" data-qyId="'+qyItem.id +'">+关注</span>'
}
qyStr += '</div>'
qyStr += '</a>'
qyStr += '</li>'
}
$(".enterWrap-qyh").append(qyStr)
}
}
})
//企业号关注和取消关注
$(".enterWrap-qyh").on("click",".qyhFocus",function(){
if($(".is-login").length>0 && $(".is-login").attr("data-uid")){
var hasFocus = $(this).hasClass("focus");
var qyId = $(this).attr("data-qyId")
var that = $(this)
$.post('/webapi/home/evipArticle/followEvip', {
evip_id : qyId,
action:hasFocus?'cancel':'follow'
}, function (data) {
//返回的数据格式:
if (data.code == "0") {
if(hasFocus){
that.removeClass("focus").addClass("unFocus").text("+关注")
}else{
that.removeClass("unFocus").addClass("focus").text("")
}
}else{
alert(data.msg);
}
});
}else{
$.ssoDialogLogin();
}
return false
})
}else{
/**推荐专栏 */
$.ajax({
url: "/d/article/getZlList",
type: "get",
data: { type: "recommend", page: 1, size: 5 },
success: function (res) {
if (res.code == 0) {
renderColumn(res.data,"");
rightHeightChange = true
} else {
$(".dzs-article-column").hide();
}
},
});
}
})
</script>
<script src="https://staticd.elecfans.com/js/artilePartjs.js?20230906"></script>
</body>
</html>