基于正则表达式(python)对东方财富网上证指数吧爬虫实例

这一周没有写博客,倒腾了好几天gitlab,白天一直在写爬虫,遇到了很多问题,一一解决了

这个爬虫目的是从东方财富网的 上证指数吧 爬取一天的所有发帖
http://guba.eastmoney.com/list,szzs,f.html

具体实现步骤如下:

1.分析网站首页

这里写图片描述

1.首页上有一个按照发帖时间排序我选择的target_urls是根据这个排序产生的网址集
2.对于分页的处理,我是进行的迭代确定的每夜的网址url
3.判断退出循环的标志
  原本希望通过获得右下角的那个总页数,但是那个数据是通过js加载出来的,而这个爬虫是通过下载静态html然后解析数据,所以是找不到那个总页数所在的节点的.所以最终设置循环的上限并没有动态生成而是人工指定
  (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~待改进一)

代码片段:

def add_new_url(self,i):                           
     self.target_urls.add('http://guba.eastmoney.com/list,szzs,f_%d.html'%i)
     return        
def add_new_urls(self,n):
     for i in range(1,n+1):#range使用
        self.add_new_url(i)
     return

2.分析帖子url

1.'/news  ........ html'是帖子的url的后缀相同部分
2.因为我们将要访问url来下载评论,所以要把整个url拼接好 使用urlparse模块的urljoin方法
 def parse(self,page_url):
       self.new_comment_urls=set()
       urls2=set()  
       html_cont=urllib2.urlopen(page_url).read()
       new_comment_urls=re.findall('/news\S+html',html_cont)
       for comment_url in new_comment_urls :
            fu_url=urlparse.urljoin(page_url,comment_url)
            urls2.add(fu_url)
       
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值