[Python爬虫]爬取东方财富网公司公告需要注意的几个问题

来源:互联网 发布:手机处理数据软件 编辑:程序博客网 时间:2024/04/29 10:26

在上一篇文章中,以爬取东方财富网公司公告为例,介绍了如何爬取利用ajax加载的网页,以及如何模拟翻页。但是,在实际应用的过程中,发现了一些问题。接下来就来一一分析解决。

问题一、公告数量过多,后面的公告无法爬取。

比如说,公告的页面数量是大于1000的,但是,我们最多只能看到1000页。那么,如果想要爬取更多的页面应该怎么办呢?

我这里有一个思路,就是先获取所有股票的id,根据股票的id来遍历。一般来说,单个股票的公司公告数量不会大于1000页。这样,就可以顺利爬取后面的公告了。


问题二、某只股票没有公司公告

解决了问题一,按照股票的id来分别爬取每只股票的公司公告。这样,就会带来一个新问题,有的股票没有公司公告怎么办?这时候,就需要使用try-catch进行判断,如果当前没有该元素,则返回。

try:do something..except NoSuchElementException,e:          return

问题三、一个公司的公告爬完了,页面重复爬最后一页,怎么办

当一个公司的公告爬完了,网页不会自动开始遍历下一家公司的公告,而是会重复的爬当前的最后一页。这就需要对“下一页” 连接是否有效进行判断

以东方财富网的公告页面为例,当“下一页”无效的时候,其class属性会变为“nolink”。那么,可以对是否出现nolink属性进行判断。

try:                    nextPage = WebDriverWait(driver, 10).until(                    EC.presence_of_element_located((By.XPATH, "//a[contains(text(),'下一页')]"))                )                    if nextPage.get_attribute('class') == 'nolink':                        break                    nextPage.click()                except Exception,e:                    break


这就是目前遇到的一些问题,及相应的解决方法。

改正过以后,除了断网,程序基本不会因为错误而退出。下面放一下新的代码连接,和上一个版本相比,更加实用和稳定。

代码连接:代码

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 买家说收到衣服没有吊牌该怎么办 淘宝下完订单店主不发货怎么办 工商局不给查被告企业的信息怎么办 被职业打假人起诉到法院怎么办 京东购物如果换货不给你发货怎么办 淘宝上发的快递没有了怎么办 天猫购物半个月不发货怎么办 京东网同一产品购买多规格的怎么办 天猫商城购买的家具要退换货怎么办 亚马逊美国站会员日前没销量怎么办 淘宝买的鞋子把脚磨坏了怎么办 拼多多下单 没货 没法发货怎么办 闲鱼退货物流弄坏了卖家拒收怎么办 客户说物流太慢了 要退货怎么办 京东退货物流系统不更新怎么办 把货交给物流但是物流丢货了怎么办 货还在物流就申请退款怎么办 荣耀4x返回键不管用怎么办 华为手机关不了机也开不了机怎么办 荣耀畅玩5x手机密码忘了怎么办 华为短信验证码失败其他错误怎么办 红米3x手机卡顿反应慢怎么办 华为手机不停的自动重启怎么办 华为荣耀4x卡在开机界面怎么办 华为荣耀8青春版密码忘了怎么办 华为手机内存满了开不起来怎么办 华为荣耀畅玩平板2比较卡怎么办 红米4x太卡了怎么办 魅蓝e移动卡只有2g网络怎么办 联通关闭2g网络双卡手机怎么办 小米6x手机插耳机音量大怎么办 音量键和亮度键盘拆了怎么办 荣耀v10锁屏密码忘了怎么办 荣耀9锁屏密码忘记了怎么办 华为荣耀v9锁屏密码忘记了怎么办 荣耀手机密码忘了怎么办数字锁 华为畅享5忘了开机密码怎么办 华为p9连接热点忘了密码怎么办 苹果手机用联通卡信号不好怎么办 魅族手机充电口松了怎么办 华为手机刷机失败开不了机怎么办