鱼C论坛

 找回密码
 立即注册
查看: 2580|回复: 1

python爬虫

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

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

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

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

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

  4. #分析爬取对象的url特性
  5.     #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
  6.     #https://tieba.baidu.com/f?kw=吐槽&ie=utf-8&pn=50    第二页,(2-1)*50
  7.     #https://tieba.baidu.com/f?kw=吐槽&ie=utf-8&pn=100   第三页,(3-1)*50
  8.     #https://tieba.baidu.com/f?kw=吐槽&ie=utf-8&pn=150   第四页,(4-1)*50

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

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

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

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

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

  27.     with open(filename,"w",encoding='utf-8')as f:
  28.         f.write(html)


  29.     print("----------------")

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

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





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

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

  51.     tiebaSpider(base_url,beginpage,endpage)

  52.     # sleep(10)
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-5-21 13:00:23 | 显示全部楼层
居然都没人回答一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-16 22:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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