爬虫:爬取某古诗词网站的页面内全部作者的诗句

代码

代码如下(示例):

import parsel,requests,re
def pa_dan(zuoze_yemian,filename):

  url=zuoze_yemian#'https://www.shicimingju.com/chaxun/zuozhe/5.html'#https://www.gxlcms.com/JavaScript-231573.html
  # print(url,type(b))
  headers={

      'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'
      
  }
  arr=[]
  res=requests.get(url=url,headers=headers)
  res.encoding=res.apparent_encoding
  # print(res.text,res.cookies,res.headers)
  select=parsel.Selector(res.text)
  obj=re.findall('html"\starget="_blank">《(.*?)》.*\n.*content">\n(.*)\n.*\n.*?(.*)<br />',res.text)
  #print(obj)

          
                                            
                          
  title=re.findall('<a href="/chaxun/zuozhe/\d+.html">(.*?)</a></div>',res.text)#head title
  #有展开项
  obj1=re.findall('html"\starget="_blank">《(.*?)》.*\n.*content">\n\s*(.*)<br />(.*?)<br />.*\n.*\n\s*(.*)<br />',res.text)#<br />(.*?)
  with open('/Users/python/shige/{}.py'.format(title[0]), 'w', encoding='utf-8', errors='ignore') as f:
    f.write('class'+' '+str(title[0])+':'+'\n')
    f.write('\t'+'def __init__(self):'+'\n')
    for i in obj1:
      #print(i)
      e=i[1]+i[2]+''.join(i[3].split('<br />'))
      #print(type(e))
      # print('class'+' '+str(title[0])+':'+'\n'+'\t\t'+'self.'+str(i[0])+'='+str(e))

      zhong='\t\t'+'self.'+str(i[0])+'=\''+str(e)+'\'\n'
      #print(zhong)
      f.write(zhong)





  #没展开
  #import module_pa
  #mkdoc('/Users/python/shige','shiren.py')
    obj2=re.findall('html"\starget="_blank">《(.*?)》.*\n.*content">\n\s*(.*?)\s*</div>',res.text)
    for j in obj2:
      e1=''.join(j[1].split('<br />'))
      zhong='\t\t'+'self.'+str(j[0])+'=\''+str(e1)+'\'\n'
      f.write(zhong)
    
    
    
  f.close()



if __name__=='__main__':
  headers={

      'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'
      
  }
  arr=[]
  res=requests.get(url='https://www.shicimingju.com/chaxun/zuozhe/5.html',headers=headers)
  res.encoding=res.apparent_encoding
  zuoze=re.findall('<li><a href="(/chaxun/zuozhe.*?)">(.*?)</a></li>',res.text)
  #print(zuoze)


  for k in zuoze:

    url='https://www.shicimingju.com'+k[0]
    pa_dan(url,k[1])

总结

每个作者的诗歌写成单个py,可直接调用里面的诗句

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值