鱼C论坛

 找回密码
 立即注册
查看: 2755|回复: 1

猎聘爬虫循环爬取信息中途出错

[复制链接]
发表于 2022-12-9 11:57:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.我用了playwright爬取猎聘的腾讯公司的招聘信息,下面时我的程序的前半部分。
问题:在爬取的时候能爬取列表中的前两条信息,到第三条的时候显示Keyerro错误如下:
                Traceback (most recent call last):
  File "C:\Users\AAA\PycharmProjects\pythonProject\爬虫\猎聘\猎聘爬虫.py", line 163, in <module>
    spiders_liepin(page_sta, page_end)
  File "C:\Users\AAA\PycharmProjects\pythonProject\爬虫\猎聘\猎聘爬虫.py", line 69, in spiders_liepin
    data_promid = a.find('a').attrs['data-promid']
        KeyError: 'data-promid'

我回去检测网页代码的时候发现关键词时对的,这是为什么呢?怎么解决啊

  1.     # 导入关键词--------------------------------------------------------------------------------------------------------------------------------------------
  2.     for i in col:
  3.         kw.append(i.value)
  4.     for k in kw:
  5.         page1.goto('https://c.liepin.com/',
  6.             wait_until='domcontentloaded')
  7.         page1.wait_for_timeout(5000)
  8.         page1.get_by_placeholder("搜索职位/公司/内容关键词").fill(k)
  9.         page1.get_by_placeholder("搜索职位/公司/内容关键词").press("Enter")
  10.         page1.wait_for_timeout(1000)
  11.         #判断关键词——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  12.         if page1.get_by_role('button',name='进入公司主页').is_enabled():
  13.             with page1.expect_popup() as popup_info:
  14.                 page1.get_by_role('button',name='进入公司主页').click()
  15.             page2 = popup_info.value
  16.             page2.wait_for_timeout(1000)
  17.             p2 = BeautifulSoup(page2.content(), 'html.parser')
  18.             joblist_link = p2.find('div',attrs={'class':'company-header-content-tab clearfix'}).find('a').find_next('a').attrs['href']
  19.             page2.goto(joblist_link)
  20.             page2.wait_for_timeout(5000)
  21.     #翻页---------------------------------------------------------------------------------------------------------------------------------------
  22.             for page_num in range(page_sta,page_end):
  23.                 p2 = BeautifulSoup(page2.content(), 'html.parser')
  24.                 for a in p2.find_all('div',attrs={'class':'job-detail-box'}):
  25.                     href = a.find('a').attrs['href']
  26.                     data_promid = a.find('a').attrs['data-promid']
  27.                     detail_page = href +'?'+data_promid
  28.     # -----------提取详情页信息--------------------------------------------------------------------------------------------------
  29.                     page3.goto(detail_page)
  30.                     page3.wait_for_timeout(5000)
  31.                     d = BeautifulSoup(page3.content(), "html.parser")
  32.                     job_name = d.find('span', attrs={'class': 'name ellipsis-1'}).text
  33.                     job_comp = k
  34.                     job_salary = d.find('span', attrs={'class': 'salary'}).text
  35.                     detail = d.find('dd', attrs={'data-selector': 'job-intro-content'}).text
  36.                     detail_tag = d.find('div', attrs={'class': 'job-properties'}).find_all('span')
  37.                     detail_sum = d.find('div', attrs={'class': 'tag-box'}).text
  38.                     tag = []
  39.                     data = [job_name, job_comp, job_salary, detail_page, detail, detail_sum]
  40.                     for t in detail_tag:
  41.                         tag.append(t.text)
  42.                     data.extend(tag)
  43.                     # ---------------保存数据-----------------------------------------------------------------------------------------------------------------
  44.                     sheet.append(data)
  45.                     Data.append(data)
  46.                     book.save('./请将数据另存为,并清空此文件内容.xlsx')
  47.                     print('第' + str(page_num) + '页',len(Data), job_name, job_comp, job_salary, detail_page, detail,
  48.                           detail_tag, detail_sum)
  49.                 #判断尾页------------------------------------------------------------------------------------------------
  50.                 if page2.get_by_role("button", name="right").is_enabled():
  51.                     page2.get_by_role("button", name="right").click()
  52.                     page2.wait_for_timeout(1000)
  53.                     continue
  54.                 else:
  55.                     print('第' + str(page_num) + '页,已到最后一页------------------------------------------------------------------------')
  56.                     break
  57.         # —--运行完成后输出结果----------------------------------------------------------------------------------------------------------------------------------
  58.             print('写入数据条数:', len(Data))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-12-19 16:45:49 | 显示全部楼层
确实是关键词错了,网站登录和未登录状态的关键词不一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 13:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表