本人是个学python爬虫不久的小白,爬取腾讯招聘的一页招聘消息,用了两天的时间,可能爬取的消息没有那么全,也没有保存在文件夹里或者数据库,我只是为了增加我的爬取经验,发帖也是为了记录。
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
import time
# 加载插件
options = Options()
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option('useAutomationExtension', False)
options.add_experimental_option('excludeSwitches', ['enable-automation'])
web = Chrome(options=options)
self = web.get('https://join.qq.com/post.html?pid=1')
time.sleep(1) # 页面加载
# 腾讯的页面需要向下滚动才能加加载出我们想要的代码
js = "window.scrollTo(0,100)"
web.execute_script(js)
time.sleep(1)
li_list = web.find_elements_by_xpath('//ul[1]/li')
for li in li_list:
x = 1
item = {}
i = li.find_elements_by_xpath('./div[1]') # 得到的时list类型
j = li.find_elements_by_xpath('./div[2]/div[1]')
for item['post_title'] in i:
print(item['post_title'].text)
for item['post__tag'] in j:
if len(item['post__tag'].text) > 1:
print(item['post__tag'].text)
else:
continue
li = web.find_element_by_xpath(f'//ul[1]/li[{x}]').click()
web.switch_to.window(web.window_handles[-1]) # 进入招聘信息的具体一页页
time.sleep(0.5)
web.execute_script(js)
time.sleep(0.5)
resp = web.find_elements_by_xpath('//*[@id="app"]/div/div[2]/div/ul/li[2]/div[2]/p')
for i in resp:
print(i.text)
web.close() # 关闭具体信息的一页
web.switch_to.window(web.window_handles[0]) # 回到第一页
x += 1
注释的内容不多,可能代码有一些多余的地方,我学爬虫也是在b站学的,可能学的不太基础不好,有些语句写得不好,或者可以怎么修改的地方,可以说出来。
|