吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1166|回复: 5
收起左侧

[求助] 求助一个对各位大佬来说很简单的爬虫问题

[复制链接]
feiying10256 发表于 2020-12-3 11:53
最近给孩子讲胎教故事,想用个爬虫爬取故事下来,参考别人的代码修改的,标题没有问题了,可是文本爬不到,求助一下各位大佬是什么原因呢?


###爬取胎教故事
import requests
import parsel


###定义一个获取url的函数,获取url。
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36'}

def get_url():
    r = requests.get('http://book.sbkk8.com/gushihui/taijiaogushi/',headers= headers)
    selector = parsel.Selector(r.text)
    url_s = selector.css('.mulu > ul > li > a::attr(href)').getall()
   
    for url in url_s:
        url = 'http://book.sbkk8.com/'+ url
        #print(url)
        download(url)


###定义一个下载函数

def download(url):  
    r = requests.get(url,headers = headers)
    r.encoding = r.apparent_encoding
    selector = parsel.Selector(r.text)
    title = selector.css('#maincontent > h1::text').get()
   
    content = selector.css('#content::text').getall()
    text = ""
    for i in content:
        text = text + i.strip()+'\n'
    path = 'C:\\Users\\yimin.lu\\Desktop\\胎教故事.txt'               ###这个是文件存放路径,可以自行修改
    with open(path,mode='a',encoding='utf-8') as f:
        f.write(title)
        f.write('\n')
        f.write(text)
        f.write('**************************************************************************'*3)
        f.write('\n')
    print("由"+url +"获取。" + title + "    下载成功")

网站代码

网站代码

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cmy2019 发表于 2020-12-3 12:18
可能是css选择器不对,就是这一句,content = selector.css('#content::text').getall()
具体没看,要是你确定选择器没问题的话,那还有可能是这个页面是js动态加载的,requests爬不到动态生成的页面
fanvalen 发表于 2020-12-3 12:32
 楼主| feiying10256 发表于 2020-12-3 13:12
cmy2019 发表于 2020-12-3 12:18
可能是css选择器不对,就是这一句,content = selector.css('#content::text').getall()
具体没看,要是你 ...

确实是这一句的问题大佬,但是这个页面应该不是js的吧,我应该怎么做呢?
 楼主| feiying10256 发表于 2020-12-3 13:13
fanvalen 发表于 2020-12-3 12:32
不打印r.text来看怎知道源是什么样的

谢谢大佬,我打印了一下,信息有点多,是不是content = selector.css('#content::text').getall()这句错了啊?

由http://book.sbkk8.com//gushihui/taijiaogushi/92608.html获取。害羞的小精灵    下载成功
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>胎教故事_勇敢机智的小黄鹂</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="mobile-agent" content="format=html5;url=http://m.sbkk8.com/gushihui/taijiaogushi/92607.html">
<meta http-equiv="Cache-Control" content="no-transform" />
<link  rel="icon" type="image/x-icon" />
<link  rel="shortcut icon" type="image/x-icon" />
<link  rel="bookmark" type="image/x-icon" />
<link rel="stylesheet" type="text/css" href="/templets/default/css/p.css" />
<link rel="stylesheet" type="text/css" href="/templets/default/css/book.css" />
<script src="http://book.sbkk8.com/js/m.js" type="text/javascript"></script>
<script type="text/javascript">
mRedirect("http://m.sbkk8.com/gushihui/taijiaogushi/92607.html");
</script>
</head>
<body>
<div id="topbar">
  <div id="logo"><a href="/"><img src="http://book.sbkk8.com/images/logo.png" border="0" alt="天涯书库" /></a></div>
  <div id="menu">
    <ul>
      <li class="current"><a href="/">首页</a></li>
     
      <li><a >古典文学</a></li>
      <li><a >故事会</a></li>
      <li><a >美容养生</a></li>
      <li><a >作文</a></li>
      
    </ul>
  </div>
</div>
<div id="mebg"> <span class="mebgL" ></span>
  <div class="mySearch">
    <form  name="formsearch" action="/plus/search.php">
      <input type="hidden" name="kwtype" value="0" />
      <input type="text" class="myKey" name="q" id="searchInput" onblur="if(this.value==''){this.value='请输入关键字......';}" onfocus="if(this.value=='请输入关键字......'){this.value='';}" value="请输入关键字......" />
      <select name="searchtype" class="search-option" id="search-option" style="display:none;">
        <option value="title" selected='1'>检索标题</option>
        <option value="titlekeyword">智能模糊</option>
      </select>
      <input type="submit" class="mySumit" value="搜索" />
    </form>
  </div>
  <span class="mebgR" ></span>
<div class="bdsharebuttonbox" style="float:right; margin-top:5px;"><a href="#" class="bds_more" data-cmd="more">分享到:</a><a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信">微信</a><a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间">QQ空间</a><a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博">新浪微博</a><a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博">腾讯微博</a><a href="#" class="bds_tqf" data-cmd="tqf" title="分享到腾讯朋友">腾讯朋友</a><a href="#" class="bds_douban" data-cmd="douban" title="分享到豆瓣网">豆瓣网</a></div>

</div>
 楼主| feiying10256 发表于 2020-12-3 13:52
谢谢大佬们了,我弄好了,改成这样content = selector.css('#content > p::text').getall()就好了。。。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 09:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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