python爬取凤凰网站的新闻,及其链接地址,来源,时间和内容,用selenium自动化和requests处理数据
import requests
from selenium import webdriver
import time def grasp(urlT):
driver = webdriver.Chrome(r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe') #自动化测试程序工具本地所在地
resAll = [] #用于存储单条数据
rest = {} #用于存储单个数据
res=requests.get(urlT)
for i in range(0,29):
print(f'第{i+1}条新闻开始')
print(res.json()['data'][i]['title'])
try:
print(res.json()['data'][i]['newsTime'])
except:
print('None')
print(res.json()['data'][i]['source'])
print(res.json()['data'][i]['url'])
rest['title']=res.json()['data'][i]['title']
try:
rest['newsTime'] = res.json()['data'][i]['newsTime']
except:
rest['newsTime'] = 'None'
rest['source'] = res.json()['data'][i]['source']
url = res.json()['data'][i]['url']
rest['url'] = res.json()['data'][i]['url']
try: driver.get(url)
time.sleep(4)
contend = driver.find_element_by_class_name('text-3zQ3cZD4').text
rest['contend'] = str(contend)
print(contend)
driver.back()
print(f'第{i+1}条新闻结束')
time.sleep(6)
except:
contend = driver.find_element_by_class_name('topic_column-5QvrwcWi').text
rest['contend'] = str(contend)
print(contend)
driver.back()
time.sleep(6)
print(f'第{i+1}条新闻格式不同')
print('#-----------------------某些格式不符合------------------------#')
resAll.append(rest)
with open('./news.txt', 'a+', encoding='utf-8') as f:
try:
f.write(''.join(resAll[i].values())+'\n')
except:
print('写入失败') url = "https://shankapi.ifeng.com/spring/finance/index/newInfoIndex/75219"
grasp(url)
#
#
# class Grasp:
#
# def __init__(self):
# self.driver = webdriver.Chrome(r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
# self.resAll = []#用于存储单条数据
# self.rest = {}#用于存储单个数据
# self.res = requests.get("https://shankapi.ifeng.com/spring/finance/index/newInfoIndex/75219")#目标链接
#
# def run(self):
# for i in range(0, len(self.res.json()['data'])):
# print(f'第{i+1}条新闻开始')
# print(self.res.json()['data'][i]['title']) #输出标题
# try:
# print(self.res.json()['data'][i]['newsTime']) #输出时间
# except:
# print('None')
# print(self.res.json()['data'][i]['source']) #输出来源
# print(self.res.json()['data'][i]['url']) #输出链接地址
# self.rest['title'] = self.res.json()['data'][i]['title'] #获取标题
# try:
# self.rest['newsTime'] = self.res.json()['data'][i]['newsTime'] #获取时间
# except:
# self.rest['newsTime'] = 'None'
# self.rest['source'] = self.res.json()['data'][i]['source'] #获取来源
# self.url = self.res.json()['data'][i]['url']
# self.rest['url'] = self.res.json()['data'][i]['url']#获取链接地址
# try:
# self.driver.get(url)
# time.sleep(4)
# self.contend = self.driver.find_element_by_class_name('text-3zQ3cZD4').text#获取网页标签下的文本
# self.rest['contend'] = str(self.contend)#插入单条数据
# print(f'第{i}条新闻成功')
# self.driver.back()
# time.sleep(4)
# except:
# contend = driver.find_element_by_class_name('topic_column-5QvrwcWi').text
# rest['contend'] = str(contend)
# driver.back()
# time.sleep(6)
# print(f'第{i+1}条新闻格式不同')
# print('#-----------------------某些格式不符合------------------------#')
# self.resAll.append(self.rest)
# with open('./news.txt', 'a+', encoding='utf-8') as f:
# try:
#
# f.write(''.join(self.resAll[i].values()) + '\n') #写入数据
# f.write(f'第{i+1}条新闻结束')
# except:
# print('写入失败')
#
# g = Grasp()
# g.run()
电脑性能差,如若想获取其他页面的数据,将规则写在except中,即可
希望,帮到大家
python爬取凤凰网站的新闻,及其链接地址,来源,时间和内容,用selenium自动化和requests处理数据的更多相关文章
- 用Python爬取影视网站,直接解析播放地址。
记录时刻! 写这个爬虫主要是想让自己的爬虫实用,把脚本放到了服务器,成为可随时调用的接口. 思路算是没思路吧!把影视名带上去请求影视网站,然后解析出我们需要的播放地址. 我也把自己的接口分享出来.接口 ...
- python爬取某个网站的图片并保存到本地
python爬取某个网站的图片并保存到本地 #coding:utf- import urllib import re import sys reload(sys) sys.setdefaultenco ...
- python爬取博客圆首页文章链接+标题
新人一枚,初来乍到,请多关照 来到博客园,不知道写点啥,那就去瞄一瞄大家都在干什么好了. 使用python 爬取博客园首页文章链接和标题. 首先当然是环境了,爬虫在window10系统下,python ...
- 用Python爬取斗鱼网站的一个小案例
思路解析: 1.我们需要明确爬取数据的目的:为了按热度查看主播的在线观看人数 2.浏览网页源代码,查看我们需要的数据的定位标签 3.在代码中发送一个http请求,获取到网页返回的html(需要注意的是 ...
- 利用Python爬取电影网站
#!/usr/bin/env python #coding = utf-8 ''' 本爬虫是用来爬取6V电影网站上的电影资源的一个小脚本程序,爬取到的电影链接会通过网页的形式显示出来 ''' impo ...
- Python爬取招聘网站数据,给学习、求职一点参考
1.项目背景 随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数据打交道,社会对于“数据”方面的人才需求也在不断增大.因此了解当下企业究竟需要招聘什么样的人才?需要什么样的技能?不管是对于 ...
- Python爬取某网站文档数据完整教程(附源码)
基本开发环境 (https://jq.qq.com/?_wv=1027&k=NofUEYzs) Python 3.6 Pycharm 相关模块的使用 (https://jq.qq.com/?_ ...
- python爬取电影网站信息
一.爬取前提1)本地安装了mysql数据库 5.6版本2)安装了Python 2.7 二.爬取内容 电影名称.电影简介.电影图片.电影下载链接 三.爬取逻辑1)进入电影网列表页, 针对列表的html内 ...
- Python爬取mn52网站美女图片以及图片防盗链的解决方法
防盗链原理 http标准协议中有专门的字段记录referer 一来可以追溯上一个入站地址是什么 二来对于资源文件,可以跟踪到包含显示他的网页地址是什么 因此所有防盗链方法都是基于这个Referer字段 ...
随机推荐
- JAVA单线程和多线程的实现方式
1.java单线程的实现 一个任务一个人独立完成 public class SingletonThread { @SuppressWarnings("static-acce ...
- Openssl命令的使用
用途: pkcs8格式的私钥转换工具.它处理在PKCS#8格式中的私钥文件.它可以用多样的PKCS#5 (v1.5 and v2.0)和 PKCS#12算法来处理没有解密的PKCS#8 Private ...
- 累乘函数线性逆元打表,阶乘反演——bzoj4816
学了一种新套路,倒序打表函数的逆元可以直接线性完成 #include<bits/stdc++.h> using namespace std; #define ll long long #d ...
- PyQt5显示日期选择框,获取日期保存文件
一.UI显示选择日期,保存到文件 import sys,os from PyQt5 import QtCore from PyQt5.QtGui import * from PyQt5.QtWidge ...
- Matlab求三重积分
Matlab求三重积分 求 \(\int_0^1 \int_0^1 \int_0^1 sin(\pi x_1 x_2 x_3) dx_1 dx_2 dx_3\) 代码是: triplequad(@(x ...
- mvn clean package:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12
原文地址:https://www.cnblogs.com/lxcy/p/8279899.html 事故现场: 解决办法: 一是命令行, mvn clean package -Dmaven.test.s ...
- i++ 和 ++i 的区别
先说运算规则吧. i++ 是先赋值后自增:++i 是先自增后赋值. 以下是代码示例: int a=0; int b=0; int i=0; a=i++; System.out.println(&quo ...
- 好文 | MySQL 索引B+树原理,以及建索引的几大原则
Java技术栈 www.javastack.cn 优秀的Java技术公众号 来源:小宝鸽 blog.csdn.net/u013142781/article/details/51706790 MySQL ...
- unittest(2)
测试用例执行顺序 1.setUp和tearDown相关 setUp:表示前置条件,它在每一个用例执行之前必须会执行一次 setUp可以理解为我们需要自动化测试时,需要打开网页窗口,输入对 ...
- [笔记]Android开发环境配置及HelloWorld程序
Android的开发须要下面四个工具: 1.JDK 2.Eclipse 3.Android SDK 4.ADT 具体功能: 1.JDK.JDK即Java Development Kit(Java开 ...