爬虫实战1 京东
url="https://item.jd.com/100012881854.html" kv = {'user-agent':'Mozilla/5.0'} r = requests.get(url,headers = kv) print(r.status_code) print(r.encoding) print(r.text[:1000])
200
utf-8
<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
<!--yushou-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>【魅族17 Pro】魅族17 Pro 8GB+128GB 定白 骁龙865 旗舰5G手机 27W无线充 6400W后置主摄 90Hz屏幕 支持NFC 智能游戏手机【行情 报价 价格 评测】-京东</title>
<meta name="keywords" content="MEIZU17 Pro,魅族17 Pro,魅族17 Pro报价,MEIZU17 Pro报价"/>
<meta name="description" content="【魅族17 Pro】京东JD.COM提供魅族17 Pro正品行货,并包括MEIZU17 Pro网购指南,以及魅族17 Pro图片、17 Pro参数、17 Pro评论、17 Pro心得、17 Pro技巧等信息,网购魅族17 Pro上京东,放心又轻松" />
<meta name="format-detection" content="telephone=no">
<meta http-equiv="mobile-agent" content="format=xhtml; url=//item.m.jd.com/product/100012881854.html">
<meta http-equiv="mobile-agent" content="format=html5; url=//item.m.jd.com/product/100012881854.html">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<link rel="canonical" href="//item.jd.com/100012881854.html"/>
<link rel="dns-prefetch" href="//misc.360buyimg.com"/>
<link rel="dns-prefetch" href="//s
必须加kv,不然
这是无法访问的
回到京东界面
因此
kv = {'user-agent':'Mozilla/5.0'} r = requests.get(url,headers = kv)
通过更改User-Agent字段就可以轻易骗过该网站。京东会从HTTP的头部判断这是一个爬虫请求还是一个网络请求,它可以拒绝爬虫请求。
import requests def getHtmlText(url): try: kv = {'user-agent': 'Mozilla/5.0'} r = requests.get(url, headers=kv) r.raise_for_status() r.encoding = r.apparent_encoding return r.text[:500] except: return '爬取失败' if __name__ == '__main__': url='https://item.jd.com/100012885246.html' print(getHtmlText(url))
可以更换url,爬取不同网页信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现