新浪财经爬虫(获取文本信息)

BiuBiu,接上一篇文章,这一次,我并没有用东方财富网站,而是新浪财经网,当然,也是因为个人需要啦。但是我看了一下,大差不差,只要看懂那些div,就能够爬取。
首先给大家看一下需求:获取新浪财经网上公司研究的研究报告整篇文章,如下图:

(按照我上一篇文章,只能做到获取这页的相关信息,但是不能获取里面的具体内容)
当然,也是看了几个爬虫视频过来的,然后按照自己的理解加上调试,搞出来的
话不多说,直接上代码了

'''导入相关库'''
from lxml import etree     #解析文档
import bs4
import requests            #获取网页
import pandas as pd        #保存文件'''构造循环爬取网页'''
#max_page = 3              #最大爬取页面
all_content = []          #内容
all_title = []             #爬取的标题存储在列表中
all_company = []
all_author = []
all_date = []              #爬取的时间存储在列表中
url = []                   #研究报告网页链接
href = []
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) 537.36'}#构造头文件,这是模拟真人登录(ps:有缺失,请自己动手)

获取网页以及文档

for page in range(1,3):print('craling the page is {}'.format(page))url1 = f'https://stock.finance.sina.com.cn/stock/go.php/vReport_List/kind/company/index.phtml?p={page}'#目标网页链接res1 = requests.get(url1,headers=headers)soup = bs4.BeautifulSoup(res1.text,"html.parser")#解析targets1 = soup.find_all("td",class_="tal f14")#获取目标字段(ps:暂时叫它字段吧),见下面第一张图(图1,依次类推)for each in targets1:hl=each.a["href"]#获取href里的内容#print(each.a["href"])res2 = requests.get('http:'+hl,headers=headers)#解析href的网页链接(即文本链接)见图2root = etree.HTML(res2.text)#再次解析href链接里的内容'''接下来就是在里面获取内容,后面的步骤与上一篇文章的方法差不多,就不过多赘述啦'''title = root.xpath("//div[contains(@class,'content')]//h1//text()")#print(title)date = root.xpath("//div[contains(@class,'content')]//div[@class='creab']//span//text()")     company = root.xpath("//div[contains(@class,'content')]//div[@class='creab']//span//a//text()")#print(company)content1 = root.xpath("//div[contains(@class,'content')]//div[@class='blk_container']//p//text()")content2 = "".join(content1)#print(content2)all_title += titletry:all_company.append(company[0])except:all_company.append(" ")#发现有时候有空值,所以用try...except了,后面也是一样的try:all_author.append(company[1])except:all_author.append(" ")try:all_date.append(date[5])except:all_date.append("备注"+all_date[-1])#没有日期的就补充为上一篇的日期,并用备注作为区分#print(type(date[5]))#print(type(time))#print(time)all_content.append(content2)
#print(all_title)
#print(all_company)data_raw = pd.DataFrame()
data_raw["puth_time"] = all_date
data_raw["title"] = all_title
data_raw["company"] = all_company
data_raw["author"] = all_author
data_raw["content"] = all_contentdata_raw.to_excel("保存地址\\XLCF.xls",index=False)#这里我就不放保存路径了,每个人的都不一样print("结束!")

td,tal f14:

href:

ps:这个代码是在8月份写完的,这只是个小样,可以导出少量的页面内容
然后我今天又试了一下,发现新浪加强了反爬机制,只跑出来一次,哭唧唧~
———————————————————————————————————————
按照小甲鱼的视频,就是在headers上面多加一些request headers(见下图1)

里面被框出来的都可以放上去
比如我增加了Referer,就跑出来了,哈哈哈~

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) /537.36','Referer':'http://stock.finance.scompany/index.phtml'}#构造头文件,这是模拟真人登录(有缺失,请自己动手获取)

如果这个方法还是不行,可以再去网上找找反爬的处理
下面是运行出来的结果对比图~

目前页面

获取的数据

爬虫(二):新浪财经爬虫(获取文本信息)相关推荐

  1. Selenium 获取文本信息方法+select(定位)

    1.通过先定位到具体的元素然后通过text方法获取文本信息,如获取控件名称等 driver.find_element_by_xpath("//div[/h1").text 2.直接 ...

  2. Selenium 获取文本信息方法总结

     1.通过先定位到具体的元素然后通过text方法获取文本信息,如获取控件名称等 driver.find_element_by_xpath("//div[/h1").text 2 ...

  3. 爬虫系列教程二:如何获取网页信息并定位信息所处位置

    在爬虫中如何获取并定位网页的信息 由于我们获取网页的类型的不同,我们希望爬取的信息的定位方法也有很大差别,但总体来说我们想要爬取的网页可以分为静态和动态,下面讲述在不同的情况下如何爬取这些信息: 网页 ...

  4. 爬虫基础-登陆github获取个人信息

    登陆github获取个人信息 import requests from bs4 import BeautifulSoup##获取github的token github_get = requests.g ...

  5. [Python爬虫] 二、爬虫原理之定义、分类、流程与编码格式

    往期内容提要: [Python爬虫] 一.爬虫原理之HTTP和HTTPS的请求与响应 一.爬虫的定义.分类和流程 爬虫定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求 ...

  6. 【Android笔记 二】Location获取地理位置信息(上)

    2011 7 22暑假实训的第五天,跟大家分享以下我对Android location的学习吧,这是一个最基本的获取地理位置信息的入门,下一次给大家介绍更质能化的地理位置选择Criteria,今天就先 ...

  7. UG\NX二次开发 获取工程图信息UF_DRAW_ask_drawing_info

    文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: 获取工程图信息UF_DRAW_ask_drawing_info 效果: 代码: // ...

  8. python爬虫从企查查获取企业信息-手工绕开企查查的登录验证

    想要从企查查爬取企业信息,如果没有登录直接检索,邮箱.电话都被隐藏了: 上面的图片是之前截的图,今天再次检索,好像又可见了: 不过单击查看详情时,还是会被隐藏: 不管怎么说,只要企查查想限制登录,总会 ...

  9. python爬虫-从QQ邮箱获取好友信息并爬取头像

    本篇博客利用python爬虫实现半自动爬取好友头像 和以前一样,先上效果: 以上就是我的好友头像,怎么获取呢? 我采取的方法可能有点低级,首先打开我们的qq邮箱,按F12找见如下的包: 我们需要的好友 ...

最新文章

  1. Linux下PS1设置
  2. 大型网站系统架构系列:分布式消息队列(二)
  3. 一名提高选手的数论之路(一)
  4. Java NIO之缓冲区
  5. 浅谈MSTP时延与带宽和速率的关系
  6. python调用webservice接口实例_python调用webservice接口的实现
  7. redis取出list最边的一个_六、Redis列表(list)类型参考记录(1)
  8. 线性回归 —— python
  9. 对python文件方法open的探究
  10. 用LVM快照创建虚拟机
  11. pandas聚合dataframe某一列的值中的所有元素
  12. AI,大数据,复杂系统最精25本大书单(建议收藏)
  13. centos7.4下的KVM虚拟机安装使用
  14. 回文数c语言构造思路,基础练习 回文数 C语言
  15. 附合导线坐标计算例题_闭合附合导线计算(课件例题)
  16. 网页中插入当前时间和实时天气
  17. java 极客漫画_java/php/net/python漫画管理系统设计
  18. sqlmap使用教程(sqli-labs1-10详解)
  19. Android安卓WebView下载文件问题
  20. dis计算机领域中是什么意思,dis

热门文章

  1. 电脑计算机软件硬盘不足,我的电脑C盘老是提示‘磁盘空间不足’如何解决?...
  2. 【第一次作业补充:项目调研】
  3. 如何在spring官网下载jar包
  4. 扁鹊医术与企业解决方案
  5. 快速排序之——挖坑法实现
  6. 数据通信与网络(一)
  7. C++语言程序设计基础---学堂在线
  8. CSS flex 排版与动画 — 重学 CSS「1024 彩蛋」
  9. 如何阻止Apple Watch困扰您站立
  10. 数据挖掘怎么做关联性分析呢?