学习了《python网络爬虫实战》第一个爬虫,爬取新浪新闻

简介: 请安装anaconda,其中附带的spyder方便运行完查看变量1.进入cmd控制台,输入 pip install BeautifulSoup4pip install requests2.

请安装anaconda,其中附带的spyder方便运行完查看变量
1.进入cmd控制台,
输入 pip install BeautifulSoup4
pip install requests
2.编写代码,代码已经很清晰了,直接运行不会报错并有成功的结果

def getNewsDetail(newsUrl):
    import requests
    from bs4 import BeautifulSoup
    from datetime import datetime  
    newsWeb = requests.get(newsUrl)
    newsWeb.encoding = 'utf-8'
    soup = BeautifulSoup(newsWeb.text,'lxml')
    result = {}
    result['title'] = soup.select('.main-title')[0].text
    result['newsSource'] = soup.select('.source')[0].text
    timeSource = soup.select('.date')[0].text
    result['datetime'] = datetime.strptime(timeSource,'%Y年%m月%d日 %H:%M')
    result['article'] = soup.select('.article')[0].text
    result['editor'] = soup.select('.show_author')[0].text.strip('责任编辑:')
    result['comment'] = soup.select('.num')[0].text
    return result  

def parseListLinks(url):
    import requests
    import json
    newsDetails = []
    request = requests.get(url)
    jsonLoad = json.loads(request.text.lstrip('  newsloadercallback(').rstrip(');'))
    newsUrls = []
    for item in jsonLoad['result']['data']:
      newsUrls.append(item['url'])
    for url in newsUrls:
      newsDetails.append(getNewsDetail(url))
    return newsDetails
      
if __name__ == '__main__':
    #获取单个新闻页面的信息
    newsUrl = 'http://news.sina.com.cn/s/wh/2018-01-08/doc-ifyqkarr7830426.shtml'
    newsDetail = getNewsDetail(newsUrl)
    #获取整个列表各个新闻页面的信息
    rollUrl='http://api.roll.news.sina.com.cn/zt_list?channel=news&cat_1=gnxw\
&cat_2==gdxw1||=gatxw||=zs-pl||=mtjj&level==1||=2&show_ext=1&show_all=1&\
show_num=22&tag=1&format=json&page=23&callback=newsloadercallback&_=1515911333929'
    newsDetails = parseListLinks(rollUrl)
目录
相关文章
|
数据采集 弹性计算 Kubernetes
单机扛不住,我把爬虫搬上了 Kubernetes:弹性伸缩与成本优化的实战
本文讲述了作者在大规模爬虫项目中遇到的挑战,包括任务堆积、高失败率和成本失控。通过将爬虫项目迁移到Kubernetes并使用HPA自动伸缩、代理池隔离和Redis队列,作者成功解决了这些问题,提高了性能,降低了成本,并实现了系统的弹性伸缩。最终,作者通过这次改造学到了性能、代理隔离和成本控制的重要性。
404 2
单机扛不住,我把爬虫搬上了 Kubernetes:弹性伸缩与成本优化的实战
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
642 2
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
851 1
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
1812 1
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
1564 62
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
数据采集 机器学习/深度学习 人工智能
反爬虫机制深度解析:从基础防御到高级对抗的完整技术实战
本文系统阐述了反爬虫技术的演进与实践,涵盖基础IP限制、User-Agent检测,到验证码、行为分析及AI智能识别等多层防御体系,结合代码实例与架构图,全面解析爬虫攻防博弈,并展望智能化、合规化的发展趋势。
3416 62
反爬虫机制深度解析:从基础防御到高级对抗的完整技术实战
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
1263 19
|
数据采集 人工智能 JSON
Prompt 工程实战:如何让 AI 生成高质量的 aiohttp 异步爬虫代码
Prompt 工程实战:如何让 AI 生成高质量的 aiohttp 异步爬虫代码

推荐镜像

更多