找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2415|回复: 2

[求助] 正在学习爬虫遇到的问题。

1

主题

1

帖子

1

积分

贫民

积分
1
ai18ac 发表于 2019-7-5 18:53:37 | 显示全部楼层 |阅读模式
# !/usr/bin/env python
# _*_ coding:utf-8 _*_
import requests
import re
url = 'http://www.jjwxc.net/onebook.php?novelid=2518'
resp**e = requests.get(url)
resp**e.encoding = 'gb2312'
html = resp**e.text
title = re.findall(r'<title>《(.*?)》雪牛_【衍生小说|纯爱小说】_晋江文学城</title>',html,re.S)[0
fb = open('%s.txt' % title, 'w', encoding='utf-8')
re_table = r'<tbody>(.*?)</tbody>'
tbody = re.findall(re_table, html, re.S|re.M)[11
chapter_info_list = re.findall(r'href="(.*?)">(.*?)<',tbody, re.S)[3
# print(chapter_info_list)
for chapter_info in chapter_info_list:
    chapter_url, chapter_title = chapter_info
   
# print(chapter_url, chapter_title)
    chapter_requests = requests.get(chapter_url)
    chapter_requests.encoding =
'gb2312'
    chapter_html = chapter_requests.text
    # 提取章节内容
    infoz = r' <div align="center" style="float:left;width:713px;padding-left: 0px; padding-top:14px;font-size:16px;">(.*?)<div id="favoriteshow_3" style="display:none" align="center">'
    chapter_div = re.findall(infoz, str(chapter_html), re.S|re.M)       # 1行    # chapter_div = re.findall(infoz, str(chapter_html), re.S|re.M)[0]    # 2行    # 清洗数据,先将空格换成空
    chapter_div = chapter_div.replace(' ', '')    # 3行
    print(chapter_div)
   
exit()

红字的这三行有疑问。(运行结果有截图,已上传图片附件)问题1:在2、3行注释后,运行正常,能提取文章的全部内容,包括html元素、空格等。问题2:在2行注解后,运行报错,上网搜索了报错没找到原因。问题3:在1行注解后,运行正常,空格去除了,但文章内容只留下了开头跟结尾。
1.png
2.png

问题1

问题1
回复

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2019-7-6 00:18:16 | 显示全部楼层
chapter_div是个list,需要一个for循环把里面string的空格去掉。
回复 支持 反对

使用道具 举报

6

主题

30

帖子

30

积分

贫民

积分
30
你的一_LtH95 发表于 2019-7-8 01:22:15 来自手机 | 显示全部楼层
[0]  如果是列表,只获取第一个的数据。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表