爬虫百度百科要求验证,请问该如何处理?

爬虫百度百科要求验证,请问该如何处理?

爬虫要求验证,请问该如何处理?请赐教,不胜感激。

import urllib.request

import urllib.parse

from lxml import etree

import re

url = 'https://bke.bd.com/item/' + urllib.parse.quote('周杰伦')

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'

}

req = urllib.request.Request(url=url, headers=headers, method='GET')

response = urllib.request.urlopen(req)

text = response.read().decode('utf-8')

print(text)

html = etree.HTML(text)

lt=[]

for i in range(1,6):

sen_list = html.xpath(f"/html/body/div[3]/div[2]/div/div[1]/div[4]/div[{i}]//text()")

l = [item.strip('\n') for item in sen_list]

l=''.join(l)

l=re.sub("\[+\d+\]","",l)

lt.append(l)

for i in range(len(lt)):

print(lt[i])

这种情况用梯子换ip能解决问题吗


回答:

明显是特征被识别到了,换IP肯定是不能的,使用代理有可能够解决。模拟浏览器访问会好一些。


回答:

咋还没解决 ? 之前回复过应该是 TLS 特征被识别,还以为应该知道怎么解决了

pip install aiohttp

代码是你之前问题的代码改的

import urllib.parse

import asyncio

import aiohttp

from lxml import etree

async def query(content):

# 请求地址

url = 'https://baike.baidu.com/item/' + urllib.parse.quote(content)

# 请求头部

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'

}

async with aiohttp.ClientSession(headers=headers) as session:

async with session.get(url) as response:

text = await response.text()

# 构造 _Element 对象

html = etree.HTML(text)

# 使用 xpath 匹配数据,得到匹配字符串列表

sen_list = html.xpath('//div[contains(@class,"lemma-summary") or contains(@class,"lemmaWgt-lemmaSummary")]//text()')

# 过滤数据,去掉空白

sen_list_after_filter = [item.strip('\n') for item in sen_list]

# 将字符串列表连成字符串并返回

return ''.join(sen_list_after_filter)

async def main():

while (True):

content = input('查询词语:')

result = await query(content)

print("查询结果:%s" % result)

if __name__ == '__main__':

asyncio.run(main())

爬虫百度百科要求验证,请问该如何处理?

原理就是 urllib.request 库对于 https 请求即 TLS 特征被识别

只需要换个不依赖 urllib.request 实现的请求库如 aiohttp


可参考

  • SSL 指纹识别和绕过

以上是 爬虫百度百科要求验证,请问该如何处理? 的全部内容, 来源链接: utcz.com/p/938724.html

回到顶部