爬虫
有没有老哥知道下面的代码出了啥问题,返回的是一个空列表import requests
import bs4
url = 'https://www.ewi-psy.fu-berlin.de/en/mitarbeiterliste/index.html?show=profs'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'}
response = requests.get(url, headers=headers)
soup = bs4.BeautifulSoup(response.text, 'html.parser')
url_targets = soup.find_all('div', class_=('box-staff-list-table-name', 'col-s-12', 'col-l-4')) 真正的数据在ajax response里。
import requests
from bs4 import BeautifulSoup
def main():
# 基础信息
basic_url = 'https://www.ewi-psy.fu-berlin.de'
url = 'https://www.ewi-psy.fu-berlin.de/en/mitarbeiterliste/index.html?show=profs'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}
ajax_headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
'X-Requested-With': 'XMLHttpRequest',
'Referer': 'https://www.ewi-psy.fu-berlin.de/en/mitarbeiterliste/index.html?show=profs'}
# 获取ajax url
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.text, 'html.parser')
ajax_url = soup.find_all('div', class_="cms-box-ajax-content")['data-ajax-url']
# 合成正式 url
url = f'{basic_url}{ajax_url}'
# 查找div
r = requests.get(url, headers=ajax_headers)
soup = BeautifulSoup(r.text, 'html.parser')
url_targets = soup.find_all('div', class_=('box-staff-list-table-name', 'col-s-12', 'col-l-4'))
print(url_targets)
if __name__ == "__main__":
main()
suchocolate 发表于 2021-10-31 23:29
真正的数据在ajax response里。
竟然还可以这样,但是我想找的内容只有div class="box-staff-list-table-name col-s-12 col-l-4",这里爬出来的内容还包括div class="box-staff-list-table-phone col-s-12 col-l-2"、div class="box-staff-list-table-link col-s-12 col-l-3这些不相关的内容,请问这是怎么回事呢
kygschp 发表于 2021-11-1 21:40
竟然还可以这样,但是我想找的内容只有div class="box-staff-list-table-name col-s-12 col-l-4",这里爬 ...
那你改成这个试试url_targets = soup.find_all('div', class_="box-staff-list-table-name")
我只是参考你的语法,并不清楚你想爬的具体内容。 suchocolate 发表于 2021-11-1 22:06
那你改成这个试试
我只是参考你的语法,并不清楚你想爬的具体内容。
可以了,感谢大佬,太强了
页:
[1]