luoshiyong123 发表于 2019-12-10 08:44

python爬取每日一句

import requests
import re
from bs4 import BeautifulSoup

url='http://wufazhuce.com/one/'#每一期的链接共同的部分
words=['0']*1800#定义一个长度为1800的列表,用来保存每一句话,并初始化为全‘0’
for i in range(0,100):
    s=str(i)#数字类型转为字符串类型
    print(i)
    currenturl=url+s#当前期的链接
    try:
      res=requests.get(currenturl)
      res.raise_for_status()
    except requests.RequestException as e:#处理异常
      print(e)
    else:
      html=res.text#页面内容
      soup = BeautifulSoup(html,'html.parser')
      a=soup.select('.one-titulo')#查找期次所在的标签
      b=soup.select('.one-cita')#查找“每日一句”所在的标签
      #print(b)
      index=re.sub("\D","",a.string.split())#从“vol.xxx”提取期次数值作为下标
      #print(index)
      if(index==''):
            continue
      #print(b.string.split())
      words=b.string.split()#将该期“每日一句”存入列表
      #print(words)
print("begin!!!!!!!!!!!!!!!")      
f=open('C:\\Users\\lsy\\Desktop\\one.TXT','w')#将每句话写入这个txt文件中,先打开
for i in range(1,1774):
    if(words=='0'):
      continue
    else:
      print(words)
      f.writelines('VOL.'+str(i)+'\n')#写入期次和换行
      f.writelines('    ')#每句话开始空四格
      f.writelines(words)#写入该句话
      f.writelines('\n\n')#换行,并空一行写入下一句      
f.close()#关闭文件

爱喝牛奶的小孩 发表于 2019-12-10 14:49

dazhuangzhuang 发表于 2019-12-10 09:09
404,one的那个路径根本不存在

他的路径是'http://wufazhuce.com/one/'加上0到99的数字~
看了下0到13都是404,14开始后面就正常了
可以写个检测的,如果是404就不爬取

wangmi5200 发表于 2019-12-10 09:03

di'yidiyi

2860795151 发表于 2019-12-10 09:06

大佬,这个咋用

qdhjysd 发表于 2019-12-10 09:08

太难了,学不会。

china-ray 发表于 2019-12-10 09:08

支持,学习学习!

dazhuangzhuang 发表于 2019-12-10 09:09

404,one的那个路径根本不存在

cj13888 发表于 2019-12-10 09:25


值得一试,谢谢分享

shlboliqiao 发表于 2019-12-10 13:08

值得学习,谢谢分享

Armusi 发表于 2019-12-10 14:38

打包后,运行exe闪退,然后txt为空
页: [1] 2
查看完整版本: python爬取每日一句