我在 Spider 的 parse 函数是这样写的
import scrapy
class ZhipinSpider(scrapy.Spider):
name = 'zhipin'
start_urls = ['https://www.zhipin.com/job_detail/?query=python&city=101010100']
def parse(self, response):
list = response.xpath('//body/div[1]')
print('list:',list)
运行之后,解析到的结果是body 下面的子标签我通过 chrome 开发工具看到的 html,和爬虫的结果 html 不同,我傻了
比如我浏览器看到的是body/div[@id="wrap"] 就能继续向下解析
但是 scrapy 的 Spider 解析 body 下面 是
['<div class="data-tips">\n <div class="tip-inner">\n <div class="boss-loading">\n <span class="component-b">B</span><span class="component-o">O</span><span class="component-s1">S</span><span class="component-s2">S</span>\n <p class="gray">正在加载中...</p>\n </div>\n </div>\n </div>']
what ?这些**div class="data-tips" ** 我从来没看到。。。
网上搜了下有朋友给出答案:
同样的 URL 浏览器会加载 js 事件,所以浏览器和 python 爬虫类 requests 打开同样的 URL 获取的源码肯定是不一样的,你拷贝谷歌的 xpath 去提取 requests 的 html 大部分肯定出问题。失败原因一般是多了不存在的 tobdy 节点、标签样式(id、class)不同、标签顺序不同等
请问 如何实现 爬虫的 Spider 去抓取 能像浏览器一样 实现浏览器一样的结果.....我猜这是反爬措施吧,但是有没有老哥能帮忙看看如何搞 :(
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.