| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 山东大学软件工程应用与实践——ECommerceCrawlers代码分析(八) -> 正文阅读 |
|
[Python知识库]山东大学软件工程应用与实践——ECommerceCrawlers代码分析(八) |
2021SC@SDUSC目录 一、摘要本篇博客作为“SohuNewCrawler”项目核心代码分析的第三篇。 我将接着上篇继续对“souhu_new.py”文件剩余核心代码以及“run_main.py”文件部分代码进行分析。 二、“souhu_new.py”文件核心代码分析1.部分一
?对于之前创建的url_set来说,因为set是无重复的集合,里面存储的都是待爬取的新闻链接。 之前?url = parse.urljoin('http://m.sohu.com', per_new.get("url")) ,对于这些拼接出来的url,在self.url_set中判断,若url不在这个集合中,则添加进去,然后控制台输出该url。 将之前存储的新闻标题以及时间按照标准格式存储并存放在self.logMessage中,同时也将“新增数据”输出。 最后将上述得到的url,时间,标题,flag(标识状态),新闻类型一起通过self.dburl插入数据库中。 2.部分二
在run()函数中,在new_url_list中以url进行for循环。并且在内部有一整数for循环,i从1到130。new_url被赋值为'{base_url}{i}?size={size}'.format(base_url=base_url, i=str(i), size=size)。?
给new_url赋完值之后再将该new_url放入url队列self.url_queue中。 三、“run_main.py”文件核心代码分析?“run_main.py”文件主要是针对网站主要部分进行爬取操作。 1.部分一
?在NewsClawer类中,_init_函数主要负责用来初始化相关值,对dburl,dbarticle进行初始化(值来自MongoDB数据库),创建一个set集合url_set。 将爬取时的headers中的“User-Agent”自定义。
url_list = self.dburl.select({"flag": 1})。 将数据库中存储的url进行条件查询,找出那些还未被爬取过的url并存进url_list中,而后将url_list中的url添加进url_set中。 2.部分二
?在req_news_command函数中。self.dburl调用find_one_update_flag1()函数。 ? ? def find_one_update_flag1(self): 当url全部扫描完毕之后,将start_url_obj中的url,time,title,type均赋给start_url,news_time,news_title,news_type。最后将起始url输出。 四、总结通过对“souhu_news.py”的分析,我对爬虫的主体过程有了一个比较清晰的了解,也收获了在爬虫与数据库应用之间的知识,收获颇丰。 我将在下一篇博客继续对“run_main.py”文件剩余核心代码进行分析,也将是本项目的最后一篇。? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 0:52:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |