做网站游戏推广赚钱,网页制作与网站建设完全学习手册下载,企业形象网站模板,石家庄网站编辑在这里#xff0c;我总结了本次项目的数据收集过程中遇到的反爬虫策略以及一些爬虫过程中容易出现问题的地方。
user-agent
简单的设置user-agent头部为浏览器即可#xff1a;
爬取标签中带href属性的网页
对于显示岗位列表的页面#xff0c;通常检查其源代码就会发现我总结了本次项目的数据收集过程中遇到的反爬虫策略以及一些爬虫过程中容易出现问题的地方。
user-agent
简单的设置user-agent头部为浏览器即可
爬取标签中带href属性的网页
对于显示岗位列表的页面通常检查其源代码就会发现相应的标签处存在一个a标签其中存在href属性值 于是可以选择爬取出该网页中的所有的href属性再依次对href属性中的所有的网址进行爬取
current_job_linksbrowser.find_elements(byBy.XPATH,value//li[classborder-top]//a[target_blank])
for link in current_job_links:job_path link.get_attribute(href)job_url urljoin(self.base_url, job_path)job_links.append(job_url)爬取使用js跳转的网页进行选型卡管理
现在好多都是不存在href而是使用javascript进行跳转也就是点击卡片之后会新开一个选项卡因此这里要使用selenium的选项卡管理来实现browser的url变化从而获得新打开页面的url如果不切换选项卡即使模拟单击了卡片也不能对打开的页面进行爬虫 重点在于一定要记得切换选项卡
for card_element in card_elements:# 单击卡片元素browser.execute_script(arguments[0].click();,card_element)# 等待新页面加载完成wait.until(EC.number_of_windows_to_be(2))# 切换到新的窗口browser.switch_to.window(browser.window_handles[1])# 获取新页面的URLcurrent_url2 browser.current_urlcurrent_url_list.append(current_url2)browser.close()分页爬取
url变化实现换页
大部分网页都是通过url的变化实现翻页的 因此只需要修改相应网址的pageNo即可
if self.page 100:self.page 1# 换urlurl https://zhaopin.meituan.com/web/position?hiringType2_6pageNo str(self.page)#再次调用爬虫yield scrapy.Request(urlurl, callbackself.parse, dont_filterTrue)time.sleep(3) # 设置3秒间隔换页url不变
使用selenium模拟浏览器点击下一页按钮。所以需要在网页中定位到”下一页“按钮的位置
next_button browser.find_element(byBy.XPATH,value//[idtarget_list]/div/div[2]/div[3]/button[2])
if not next_button.is_enabled():break
browser.execute_script(arguments[0].click();, next_button)同时注意判断停止条件当按钮不可用时表示到达最后
登录问题
在爬取京东招聘时需要首先进行登录 使用如下代码实现模拟登陆