asa616628217 发表于 2023-1-17 23:32:19

爬取内容和源代码不一样

import urllib.request as u

url='https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word=%E5%A3%81%E7%BA%B8&step_word=&hs=0&pn=0&spn=0&di=7169026086108397569&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=2&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=-1&cs=2538499216%2C780981968&os=2922338267%2C1531596723&simid=30962589%2C742687920&adpicid=0&lpn=0&ln=1977&fr=&fmq=1673969255626_R&fm=result&ic=0&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=&height=&face=undefined&ist=&jit=&cg=wallpaper&bdtype=0&oriquery=&objurl=http%3A%2F%2Fpic1.win4000.com%2Fwallpaper%2F2018-06-07%2F5b18f37614638.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Botg9aaa_z%26e3Bv54AzdH3F45ktsj_1jpwts_8908ab_0_z%26e3Bip4s&gsm=1e&rpstart=0&rpnum=0&islist=&querylist=&nojc=undefined&dyTabStr=MCwzLDYsMiwxLDQsNSw3LDgsOQ%3D%3D'

b=u.Request(url)

b.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0')

f=u.urlopen(b)
d=f.read().decode('utf-8')

print(d)

print(f.getcode())# 这个显示200 应该是没问题啊

这是一个百度图片网址,为什么和审查元素结果不一样?有什么解决方法吗?{:5_99:} {:5_99:}

不二猫猫 发表于 2023-3-14 23:15:28

在使用 urllib.request 模块访问网页时,很多网站都会进行反爬虫处理,例如检测请求头中的 User-Agent 字段,如果不符合浏览器的标准格式,就会返回错误的页面或者限制访问。

在你的代码中,你已经添加了一个 User-Agent 字段,但是这个字段的值可能不是最新的浏览器标准格式,因此可能会被反爬虫机制检测到。你可以尝试更换 User-Agent 字段的值,例如使用最新的 Firefox 浏览器的 User-Agent:

b.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0')
如果还是无法获取正确的页面,可能是因为该网站使用了其他反爬虫机制,例如验证码、IP封锁等等。这时候可以考虑使用其他的爬虫库,例如 requests、selenium 等等,或者手动模拟浏览器操作。但是需要注意的是,在进行网络爬虫时,需要遵守相关法律法规,不得用于非法用途。

酱油客 发表于 2023-3-14 23:23:39

插个眼,方便来参考

the-study 发表于 2023-4-8 14:23:14

页: [1]
查看完整版本: 爬取内容和源代码不一样