常用内建模块(itertools、urllib)

1.itertools(提供了非常有用的用于操作迭代对象的函数)

  • count()会创建一个无限的迭代器,所以上述代码会打印出自然数序列
    常用内建模块(itertools、urllib)
  • cycle()会把传入的一个序列无限重复下去
    常用内建模块(itertools、urllib)常用内建模块(itertools、urllib)
  • repeat()负责把一个元素无限重复下去,不过如果提供第二个参数就可以限定重复次数
    常用内建模块(itertools、urllib)常用内建模块(itertools、urllib)
  • chain()可以把一组迭代对象串联起来,形成一个更大的迭代器
    常用内建模块(itertools、urllib)常用内建模块(itertools、urllib)
  • groupby()把迭代器中相邻的重复元素挑出来放在一起
    常用内建模块(itertools、urllib)常用内建模块(itertools、urllib)

2.urllib(提供了一系列用于操作URL的功能)

  • request模块可以非常方便地抓取URL内容
    常用内建模块(itertools、urllib)常用内建模块(itertools、urllib)
  • 如果我们要想模拟浏览器发送GET请求,就需要使用Request对象,通过往Request对象添加HTTP头,我们就可以把请求伪装成浏览器
    常用内建模块(itertools、urllib)常用内建模块(itertools、urllib)
  • Post
    如果要以POST发送一个请求,只需要把参数data以bytes形式传入。
    常用内建模块(itertools、urllib)
    常用内建模块(itertools、urllib)常用内建模块(itertools、urllib)常用内建模块(itertools、urllib)

  • Handler
    如果还需要更复杂的控制,比如通过一个Proxy去访问网站,我们需要利用ProxyHandler来处理
    常用内建模块(itertools、urllib)

利用urllib读取JSON,然后将JSON解析为Python对象

常用内建模块(itertools、urllib)常用内建模块(itertools、urllib)