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

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. TableLayout(表格布局)
  2. mysql查询日期内的所有日期代码
  3. C++中拼接一个包含整型等类型字符串的方法
  4. npm更新模块并同步到package.json中
  5. QCustomplot怎么实现对大数据量的自适应采样显示不卡顿
  6. APPSERV下安装pear db和auth
  7. docker 修改阿里镜像源_Jetson Nano 修改源镜像
  8. 136. 只出现一次的数字 golang
  9. github上打包的样式为什么在预览的时候,出现404
  10. 2005精品书籍-go go go
  11. Netty实现长连接简单例子
  12. PHP学习记录(数学函数库)
  13. Easyui datebox单击文本框显示日期选择
  14. Quartz的misfire特性
  15. 【应急响应】————7、服务器大量发包
  16. 手写Vue个人组件库——fl-Badge
  17. Android dex2oat命令参数解释
  18. Python学习笔记(一)(图灵学院)
  19. TokenInsight 对话首席——隐私安全计算,价值几何?
  20. 【英语】大学英语CET考试,听力部分2(长选项关键词,答题技巧总结)

热门文章

  1. 16、【易混淆概念集】-第十章 沟通方法 会议 沟通渠道计算 沟通管理计划
  2. 云服务器怎么搬砖,逆水寒,预约五个新区 , 新区如何搬砖,来看看你该如何搞...
  3. 变压器重物推移机 在轨重物推移机 图片
  4. DHS与DSL,让生产环境更可靠
  5. 雄迈新合封模组,造就安防精工品质
  6. 李彦宏提案的思路:基于实践、崇尚技术、关注民生
  7. 院士:科研工作者也得养家!非升即走压力下,不得不做短平快的研究
  8. 30 分钟用 Ranch 搭建 FTP 服务器
  9. 局域网流量控制_安卓手机APP控制无线开关的电路方案设计(原理图+源码)
  10. 国考省考行测:词句理解,词的对象指代,就近原则,主语一致法,语意语境分析上下文找出指代含义