爬虫笔记

python爬虫笔记

判断请求是否成功

1
assert response.status_code==200

字符串格式化的一种方式

1
"你{}好".format(1)

使用代理ip

  • 准备一堆ip地址,组成ip池,随机选择一个ip来使用

  • 如何随机选择代理ip

    • {“ip”:ip,”times”:0}
    • [{},{},{},{},{}],对这个ip的列表进行排序,按照使用次数进行排序
    • 选择使用次数较少的10个ip,从中随机选择一个
  • 检查ip的可用性

    • 可以使用requests添加超时参数,判断ip地址的质量
    • 在线代理ip质量检测网站

携带cookie请求

  • 尽量不使用cookie
  • 携带一堆cookie进行请求,把cookie组成cookie池

请求登陆之后的网站的思路

  • 实例化session
  • 先使用session发送请求,登陆对网站,把cookie保存在session中
  • 再使用session请求登录之后才能访问的网站,sesssion能够自动携带登陆成功时保存在其中的cookie,进行请求

不发送post请求,使用cookie获取登陆后的页面

  • cookie过期时间很长的网站
  • 在cookie过期之前能够拿到所有的数据,比较麻烦
  • 配合其他程序一起使用,其他程序专门其获取cookie,当前程序专门请求页面

字典推导式,列表推导式

1
2
cookies = "uuid_tt_dd=10_18697420810-1541514998525-406120; dc_session_id=10_1541514998525.130001; c_adb=1; smidV2=2018110622540004c9a404e4b4418224a1bc1f0afbaf24004db7a451c1dc9c0; UN=makersy; TY_SESSION_ID=bcb2fab5-1594-432f-b08b-77ff1c25478c; SESSION=04780891-f506-4bae-9eb9-7bee9b0f01b6; UserName=makersy; UserInfo=TY72nyXcSQ4kxcpYdP3noqwQsV904wqUfUrjssi1EYiqf77of1nXIX31igaPjkMfWt%2FBg37Ty5yCAFxluyxuwvK%2BjTb8WKRG2o8PpCGW7eCE5ImRX5bUUNkAvcYMhTjY; UserNick=makersy; AU=7FA; BT=1541516799322; UserToken=TY72nyXcSQ4kxcpYdP3noqwQsV904wqUfUrjssi1EYiqf77of1nXIX31igaPjkMfWt%2FBg37Ty5yCAFxluyxuwvK%2BjTb8WKRG2o8PpCGW7eAvjKefqLie1zAAltRYdzP1Sk%2Bfm7yuJ%2FP%2Fbsd6wSQVGMnSmTWc8bbv2HgJOkqFDhc%3D; ARK_ID=JSc5d36a4d0c44c361b2667ed6147b5607c5d3; dc_tos=phs2bi"
cookies = {i.split("=")[0]:i.split("=")[1] for i in cookies.split("; ")}

获取登陆后的页面的三种方式

  • 实例化session,使用session发送post请求,在使用他获取登陆后的页面
  • headers中添加cookie键,值为cookie字符串
  • 在请求方法中添加cookie参数,接受字典形式的cookie,字典形式的cookie中的键是cookie的name对应的值,值是cookie的value对应的值