为什么我的select返回的是空列表?
import requests
from fake_useragent import UserAgent
import base64
from bs4 import BeautifulSoup
#获取新闻
def GetNewsFromChina(searchWord):
currentPage = 1
url = "http://www.in.cnr.it/index.php/it/component/search/?searchword=cnr&searchphrase=all&Itemid=101"
# 参数
params = {
'searchword': base64.b64encode(searchWord.encode('utf-8')).decode('utf-8'),
'searchphrase': 'all',
'Itemid': 101,
}
#获取数据
ua = UserAgent(verify_ssl=False)
header = {'User-Agent': ua.random}
response = requests.get(url=url, headers=header, params=params).text
# print(response)
#解析数据
html = BeautifulSoup(response,'lxml')
dtList = html.select('div.search > dl >dt')
print(dtList)
if __name__ == '__main__':
searchWord = 'cnr'
list = GetNewsFromChina(searchWord)
print('ok')
select返回的是空列表
尝试过浏览器复制selector也是一样的
Assert,和type.要自己学会debug。你要知道每个变量接受回来的东西是什么类型,然后你的操作才会给你预期的结果
你需要定位元素是哪些,我看返回的数据里面没有你要的标签,dt,怀疑数据不是通过这个请求返回的,而是ajax请求返回的,你去页面重新抓包,看看ajax请求里面是不是有你想要的数据