专栏首页嘘、小点声python网络爬虫(1)静态网页抓取

python网络爬虫(1)静态网页抓取

获取响应内容:

import requests
r=requests.get('http://www.santostang.com/')
print(r.encoding)
print(r.status_code)
print(r.text)

获取编码,状态(200成功,4xx客户端错误,5xx服务器相应错误),文本,等。

定制Request请求

传递URL参数

key_dict = {'key1':'value1','key2':'value2'}
r=requests.get('http://httpbin.org/get',params=key_dict)
print(r.url)
print(r.text)

定制请求头

headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0','Host':'www.santostang.com'}
r=requests.get('http://www.santostang.com',headers=headers)
print(r.status_code)

发送POST请求

POST请求发送表单信息,密码不显示在URL中,数据字典发送时自动编码为表单形式。

key_dict = {'key1':'value1','key2':'value2'}
r=requests.post('http://httpbin.org/post',data=key_dict)
print(r.url)
print(r.text)

超时并抛出异常

r=requests.get('http://www.santostang.com/',timeout=0.11)

获取top250电影数据

import requests
import myToolFunction
from bs4 import BeautifulSoup

def get_movies():
    headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0','Host':'movie.douban.com'}
    movie_list=[]
    for i in range(10):
        link='https://movie.douban.com/top250'
        key_dict = {'start':i*25,'filter':''}
        r=requests.get(link,params=key_dict)
        #print(r.text)
        print(r.status_code)
        print(r.url)
        
        soup=BeautifulSoup(r.text,'lxml')
        div_list=soup.find_all('div', class_='hd')
        for each in div_list:
            movie=each.a.span.text.strip()+'\n'
            movie_list.append(movie)
        pass
    return movie_list

def storFile(data,fileName,method='a'):
    with open(fileName,method,newline ='') as f:
        f.write(data)
        pass
    pass

movie_list=get_movies()
for str in movie_list:
    myToolFunction.storFile(str, 'movie top250.txt','a')
    pass

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • tensorflow零起点快速入门(1)

    其中的TF_CPP_MIN_LOG_LEVEL据说是为了忽略警告,但是我这里没有意义(numpy的一些警告)

    嘘、小点声
  • tensorflow零起点快速入门(6) --np与tf

    嘘、小点声
  • tensorflow零起点快速入门(3)

    运行数据的另一种方法是使用eval(),括号里面添加session部分,否则失效报错:

    嘘、小点声
  • 这个男人让你的爬虫开发效率提升8倍

    他叫 Kenneth Reitz。现就职于知名云服务提供商 DigitalOcean,曾是云计算平台 Heroku 的 Python 架构师,目前 Github...

    Crossin先生
  • Python——购物车程序(列表的应用)

    上面的代码,刚学完列表的时候写的,其实存在很多问题:比如商品、价格做到2个列表里,每次索引起来很麻烦,万一不小心价格顺序改一下,大厦直接坍塌,所以要做一个嵌套的...

    Ed_Frey
  • Python之requests入门

    最近在学习Python相关的框架花了点时间,早期在python+Selenium+Unittest+HTMLTestRunner(UI自动化这块花了些时间实践了...

    测试小兵
  • python3的request用法实例

    requests 是爬取数据最常用的模块,比起 urllib, urllib2, urllib3 这几个单是看名字就晕的模块,requests 不仅功能强大,而...

    章鱼喵
  • 手机上Python编程的软件分享

    下载QPython3,直接在手机应用中搜索就行,如下,大概也就12兆左右,直接点击下载安装就行:

    python学习教程
  • Python系列之——好用的Python开发工具

    工欲善其事必先利其器,一个好的工具能让起到事半功倍的效果,Python社区提供了足够多的优秀工具来帮助开发者更方便的实现某些想法,下面这几个工具给我的工作也带来...

    JAVAandPython君
  • 三、Requests库的使用

    requests 的底层实现其实就是 urllib3  Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。 学过关于urll...

    酱紫安

扫码关注云+社区

领取腾讯云代金券