博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单爬虫
阅读量:5119 次
发布时间:2019-06-13

本文共 1868 字,大约阅读时间需要 6 分钟。

import requests

# requests模块,发出请求,接受响应,包括请求响应

headers = {

  "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
}

params = dict(wd="python")

r = requests.get("http://www.baidu.com/s",headers=headers,params=params)

print(r.content.decode())

  #获取请求的url
print(r.request.url)


import requests

        # "发送请求"

r = requests.get("http://www.baidu.com")
# "有乱码,requests模块是猜 对方web响应的返回的编码格式进行解码的"
print(r.text)
# 此时获取的内容比较少。因为此时还没有设置user——agent ,对方会认为时一个爬虫,有些东西不让爬
# 打印编码格式
# print(r.encoding)

# r.content返回的是bite格式的数据,所以直接用 r.content.decode

# 修改解码方式

# r.encoding = "utf8"
# print(r.text)

 

# 打印请求头

# print(r.request.headers)
#打印响应头
print(r.headers)


 

import requests

 

class TiebaSpider:

    def __init__(self,tieba_name):

      self.tieba_name = tieba_name

      self.temp_url = "https://tieba.baidu.com/f?kw=" + tieba_name + "&pn={}"

      self.headers = {

          "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko)           Chrome/60.0.3112.113 Safari/537.36"
          }

 

#构造url列表

    def get_url_list(self):

      url_list = [self.temp_url.format(i*50) for i in range(5)]

      return url_list

 

#发送请求,获取响应

    def parse_url(self,url):

      response = requests.get(url,headers=self.headers)

      return response.content.decode()

 

#保存

    def save_html(self,html,page_num):

      file_path = self.tieba_name+"_"+str(page_num)+".html"

      with open(file_path, "w", encoding="utf-8") as f:

      f.write(html)

 

    def run(self):
      url_list = self.get_url_list()

      for url in url_list:

        html_str = self.parse_url(url)

        page_num = url_list.index(url)+1

        self.save_html(html_str,page_num)

 

if __name__ == "__main__":
tieba = TiebaSpider("蒋欣")
tieba.run()

转载于:https://www.cnblogs.com/lvhonglei-python/p/7525559.html

你可能感兴趣的文章
面向对象的设计原则
查看>>
Swift3.0服务端开发(三) Mustache页面模板与日志记录
查看>>
【转】 FPGA设计的四种常用思想与技巧
查看>>
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
新手算法学习之路----二叉树(在一个二叉查找树中插入一个节点)
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
基于C#编程语言的Mysql常用操作
查看>>
s3c2440实验---定时器
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>
Regular Experssion
查看>>
图论例题1——NOIP2015信息传递
查看>>
uCOS-II中的任务切换-图解多种任务调度时机与问题
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
UseIIS
查看>>
集合体系
查看>>
vi命令提示:Terminal too wide
查看>>