py大神 发表于 2018-1-18 21:06:45

Python:自己写的一个爬虫,有一个地方出错了,但是找不到原因

本帖最后由 py大神 于 2018-1-18 21:18 编辑


#!/usr/bin/env python
# -*- coding:utf-8 -*-

import urllib.request
import re

#这里处理小说的URL
def spid(url,headers):
    req = urllib.request.Request(url,headers=headers)
    response = urllib.request.urlopen(req)
    html = response.read().decode("gbk")

    return html
#这里下面三行添加URL头部,
url = "http://www.31xs.org/12/12970/"
headers = {"这里是headers信息"}
info = spid(url,headers)

#匹配目录(把每一章的URL匹配出来)
re_Cata_Str = r'<dd><a href="/12/12970/.*"'
re_Cata_Obj = re.compile(re_Cata_Str)
re_Cata_Res = re_Cata_Obj.findall(info)

#添加URL(把每一章的URL都添加进一个列表)
url_List = []
url_Num = 0
for i in re_Cata_Res:
    all_url =url + re_Cata_Res
    url_List.append(all_url)
    url_Num += 1

#发起请求(根据每一章的URL发出请求)
text_List = []
for i in url_List:
    req = urllib.request.Request(i,headers=headers)
    response = urllib.request.urlopen(req)
    texthtml = response.read().decode("gbk")
    #匹配正文(把正文匹配出来,并添加进一个列表)
    re_Text_Str = r'<p>.*?</p>'
    re_Text_Obj = re.compile(re_Text_Str)
    re_Text_Res = re_Text_Obj.findall(texthtml)
    text_List.append(re_Text_Res)

#写入文件
text_Num = 0
text_Num2 = 9#因为前九章是最近更新,所以这里从第一张开始
with open(r"C:\Users\(__ini__)\Desktop\剑来正文.txt",'w') as f:
    for i in text_List:#这里把每一章给i
      text_Num2 += 1
      for e in i:#这里把每一章的第一段给e
            print(i,i,e)#按道理说这里的i元素和e打印出来的结果应该是相等的,但是打印出来发现e却是i。这是问什么?
            break
            f.write(e)
            text_Num += 1
      break
            




这是一个爬取我看的一个小说的爬虫,具体功能是根据目录爬取每一章的正文并且写入文件。问题在第52行。








BngThea 发表于 2018-1-18 21:22:45

因为for循环中的i就是i

py大神 发表于 2018-1-19 14:56:40

BngThea 发表于 2018-1-18 21:22
因为for循环中的i就是i

还真是,快被自己蠢哭了{:10_247:}

感谢老哥!
页: [1]
查看完整版本: Python:自己写的一个爬虫,有一个地方出错了,但是找不到原因