鱼C论坛

 找回密码
 立即注册
查看: 2438|回复: 5

[已解决]不知道这里能不能问一下python爬虫的问题,好久了也没人回复,希望看到的大佬回下

[复制链接]
发表于 2019-5-28 10:11:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
最近在学习python爬虫,然后练手自己写了一个简单的爬虫,爬取了一下百度贴吧的内容,但是遇到一个问题,贴吧的内容能拿到,也能打印出来,但是在写入文件的时候只能写一个网页头。希望大牛指导一下是什么原因导致的写文件失败(代码没有报错),源代码如下:
from urllib import request
from urllib import parse

#爬取指定的百度贴吧内容

#分析爬取对象的url特性
    #https://tieba.baidu.com/f?kw=%CD%C2%B2%DB&fr=ala0&tpl=5  第一页,经测试https://tieba.baidu.com/f?kw=吐槽&ie=utf-8&pn=0也可以访问第一页,故url中pn的值为(1-1)*50
    #https://tieba.baidu.com/f?kw=吐槽&ie=utf-8&pn=50    第二页,(2-1)*50
    #https://tieba.baidu.com/f?kw=吐槽&ie=utf-8&pn=100   第三页,(3-1)*50
    #https://tieba.baidu.com/f?kw=吐槽&ie=utf-8&pn=150   第四页,(4-1)*50

# base_url="https://tieba.baidu.com/f?"

header = {
    "user-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1"
}

#发送请求,获取数据
def loadpage(url,filename):
    print("正在下载:",filename)
    req = request.Request(url,headers=header)
    resp = request.urlopen(req).read()
    # print(type(resp))
    # print("以下是下载的内容:",resp.decode())
    return resp

#将请求的数据写入本地
def writepage(html,filename):
    print("正在保存:",filename)

    # f = open(filename,"wb")
    # f.write(html)
    # f.close()

    with open(filename,"wb") as f:
        f.write(html)


    print("----------------")

#构造要爬取的url等数据
def tiebaSpider(url,beginpage,endpage):
    #构造url
    for page in range(beginpage,endpage+1):
        pn = (page-1)*50  #计算url中pn的值
        fullurl = url+"&pn="+str(pn)   #构造完整的url
        # print(fullurl)
        filename = r"/Users/fengcheng/Documents/第" + str(page) + "页.html"

        # 获取要爬取的数据
        html = loadpage(fullurl, filename)
        # 将爬取到的数据写到本地
        writepage(html, filename)
        print("谢谢使用!")





if __name__ == '__main__':
    key = input("请输入要爬取的贴吧名:")
    beginpage = int(input("请输入起始页:"))
    endpage = int(input("请输入结束页:"))

    kw = {"kw":key}  #贴吧名
    kw = parse.urlencode(kw)
    #构造url
    base_url = "http://tieba.baidu.com/f?"+kw

    tiebaSpider(base_url,beginpage,endpage)

    
最佳答案
2019-5-29 09:38:35
不知道叫啥好 发表于 2019-5-29 09:28
是我描述不准确,保存到本地的文件用浏览器打开后只显示一个搜索框及一些超链接,没有网页的具体内容。但 ...

那你想多了,一个网页如果单单由一个.html文件组成,那不直接用.txt得了。
建议你先了解一下网页编程,鱼C也有。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-28 10:53:26 | 显示全部楼层
1.png 2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-28 14:57:36 | 显示全部楼层

能否解释下,只贴图我看不明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-28 17:32:35 | 显示全部楼层
不知道叫啥好 发表于 2019-5-28 14:57
能否解释下,只贴图我看不明白

只能写一个网页头 你能知道什么网页头,难道你不知道<body></body>是什么?
好了,你不知道<body></body>是什么,那么你所谓的网页头是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-29 09:28:30 | 显示全部楼层
ba21 发表于 2019-5-28 17:32
只能写一个网页头 你能知道什么网页头,难道你不知道是什么?
好了,你不知道是什么,那么你所谓的网页 ...

是我描述不准确,保存到本地的文件用浏览器打开后只显示一个搜索框及一些超链接,没有网页的具体内容。但是查看网页源代码的时候显示的却是完整的信息。我就是这里不懂为什么用浏览器打开的时候和直接输入url打开看到的不一致
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-29 09:38:35 | 显示全部楼层    本楼为最佳答案   
不知道叫啥好 发表于 2019-5-29 09:28
是我描述不准确,保存到本地的文件用浏览器打开后只显示一个搜索框及一些超链接,没有网页的具体内容。但 ...

那你想多了,一个网页如果单单由一个.html文件组成,那不直接用.txt得了。
建议你先了解一下网页编程,鱼C也有。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 08:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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