莫凡辰 发表于 2022-4-3 15:16:17

使用selenium爬取网站信息,求助

我使用语句list_YibNq = web.find_elements(by=By.XPATH,value='//*[@id="jobList"]/div'),该语句本应该获取大量数据,但为什么每次只能获取到第一条?
源代码如下:
"""
1.使用selenium打开谷歌浏览器访问网站‘lagou.com’
2.点击全国,并在输入框输入‘python’
3.将页面上的公司名称,职位名称,薪资打印出来
"""
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
web = Chrome()
web.get('http://lagou.com')
#找到某个元素,点击它
el = web.find_element(by=By.XPATH,value='//*[@id="changeCityBox"]/p/a')
el.click()
#找到输入框,输入python,=》输入回车/点击搜索按钮
web.find_element(by=By.XPATH,value='//*[@id="search_input"]').send_keys("python",Keys.ENTER)
time.sleep(1)
#查找数据存放的位置,对数据进行提取
list_YibNq = web.find_elements(by=By.XPATH,value='//*[@id="jobList"]/div')
print(len(list_YibNq))
#for item in list_YibNq:
    #job_name = item.find_element(by=By.XPATH,value='./div/div/div/div/a').text
    #job_price = item.find_element(by=By.XPATH,value='./div/div/div/div/span').text
    #company_name = item.find_element(by=By.XPATH,value='./div/div/div/div/a').text
   # print(company_name,job_name,job_price)

isdkz 发表于 2022-4-3 19:50:30

list_YibNq = web.find_elements(by=By.XPATH,value='//*[@id="jobList"]/div') 把那个 去掉

莫凡辰 发表于 2022-4-4 09:58:22

isdkz 发表于 2022-4-3 19:50
list_YibNq = web.find_elements(by=By.XPATH,value='//*[@id="jobList"]/div') 把那个 去掉

试过了,但还是不好使呀

isdkz 发表于 2022-4-4 09:59:57

莫凡辰 发表于 2022-4-4 09:58
试过了,但还是不好使呀

好吧,那我帮你调试一下

莫凡辰 发表于 2022-4-4 10:31:56

isdkz 发表于 2022-4-4 09:59
好吧,那我帮你调试一下

多谢大佬{:10_256:}

莫凡辰 发表于 2022-4-4 10:39:53

isdkz 发表于 2022-4-4 09:59
好吧,那我帮你调试一下

大佬,我刚刚发现问题在哪了,现在已经解决了,多谢{:10_297:}

isdkz 发表于 2022-4-4 10:40:33

from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
web = Chrome()
web.get('http://lagou.com')
#找到某个元素,点击它
el = web.find_element(by=By.XPATH,value='//*[@id="changeCityBox"]/p/a')
el.click()
#找到输入框,输入python,=》输入回车/点击搜索按钮
web.find_element(by=By.XPATH,value='//*[@id="search_input"]').send_keys("python",Keys.ENTER)
time.sleep(1)
#查找数据存放的位置,对数据进行提取
list_YibNq = web.find_elements(by=By.XPATH,value='//*[@id="jobList"]/div/div')                        # for 循环里减少一个 div 放到这里来
print(len(list_YibNq))
for item in list_YibNq:
    job_name = item.find_element(by=By.XPATH,value='./div/div/div/a').text
    job_price = item.find_element(by=By.XPATH,value='./div/div/div/span').text
    company_name = item.find_element(by=By.XPATH,value='./div/div/div/a').text
    print(company_name,job_name,job_price)

isdkz 发表于 2022-4-4 10:41:06

莫凡辰 发表于 2022-4-4 10:39
大佬,我刚刚发现问题在哪了,现在已经解决了,多谢

好吧{:5_109:}
页: [1]
查看完整版本: 使用selenium爬取网站信息,求助