python-爬虫(1)-UA检测-动态数据加载

   数据安全是个社会问题,爬与反爬的道德、法律、社会意义不说,本文只说技术。爬虫分三类:   通用(数据的抓取),聚焦(数据的分析),增式(数据的更新).
   反爬机制:可以通过robots.txt文件查看。
   比如京东的:https://www.jd.com/robots.txt
   1.UA检测  网站通过user-agent可以知道现在访问的客户端是程序还是浏览器。而如果想伪装成浏览器,只需在添加header中添加  user-Agent。比如我的
     浏览器:user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36

word=input('enter a key:')
url='https://www.sogou.com/web'
params={
    'query':word
}
#UA伪装
headers={
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}
response=requests.get(url=url,params=params,headers=headers)
response.encoding='utf-8'              #手动修改编码
page_text=response.text
fileName=word+'.html'
with open(fileName,'w',encoding='utf-8')as fp:
    fp.write(page_text)
print(word,'下载成功')

    把这个user-Agent放到url的请求参数中即可。
    2.动态加载数据        
      对于一个陌生的网站进行数据爬取前必须要做的事就是判断数据是否为动态加载的数据。可以用浏览器抓包工具 用来验证。         做法就是用浏览器发一个url请求,看respones  回应是否有你想要的数据。其实很多情况下非也,那么这种通过非浏览器地址栏请求到的数据就叫动态加载数据。
     方法:
发url->基于抓包工具->全局搜索->定位->请求的包

 

定位后看response,解析response里的json

#url='https://movie.douban.com/j/new_search_subjects'
#参数动态化
params = {
    "sort":"U",
    "range": "0,10",
     "tags":" " ,
     "start": "0",
    "genres": "历史",
    "countries": "伊朗",
}
headers={
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}

response=requests.get(url=url,headers=headers,params=params)
page_text=response.json()
print(page_text)
for dic in page_text:
    name=dic['data']
    print(name)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值