Web scraping txt模式下的网页抓取

Web scraping txt模式下的网页抓取,web-scraping,Web Scraping,我目前正在使用watir对一个网站进行网页抓取,从通常的HTML源中隐藏所有数据。如果我没有错的话,他们正在使用XML和那些AJAX技术来隐藏它。Firefox可以看到它,但它是通过“DOM选择源”显示的 一切都很好,但现在我正在寻找一个等效的工具作为瓦蒂尔,但一切都需要做没有浏览器。一切都需要在txt文件中完成 事实上,现在watir正在使用我的浏览器模拟页面,并返回我正在查看的全部html代码。我想要相同的,但没有浏览器 可能吗 谢谢 当做 Tak您最好的猜测是使用类似的东西并捕获浏览器正在

我目前正在使用watir对一个网站进行网页抓取,从通常的HTML源中隐藏所有数据。如果我没有错的话,他们正在使用XML和那些AJAX技术来隐藏它。Firefox可以看到它,但它是通过“DOM选择源”显示的

一切都很好,但现在我正在寻找一个等效的工具作为瓦蒂尔,但一切都需要做没有浏览器。一切都需要在txt文件中完成

事实上,现在watir正在使用我的浏览器模拟页面,并返回我正在查看的全部html代码。我想要相同的,但没有浏览器

可能吗

谢谢 当做
Tak

您最好的猜测是使用类似的东西并捕获浏览器正在执行的AJAX请求的URL。

这样,您就可以通过使用任何HTTP库模拟这些调用来获取“重要”数据了

您最好的猜测是使用类似的方法并捕获浏览器正在执行的AJAX请求的URL。

这样,您就可以通过使用任何HTTP库模拟这些调用来获取“重要”数据了

只需一点Python编码就可以了

我写了一个简单的脚本来获取货运办公室的位置

第一步

  • 例如,用土耳其语用Google Chrome打开ajax页面,但您可以理解它。
  • 按F12键显示底部开发人员工具,并导航到网络选项卡
  • 导航底部的XHR选项卡
  • 通过在第一个组合框中选择一个项目来发出AJAX请求。然后转到标题选项卡
  • 您将在左窗格中获得TownByCity,单击它并检查它

    请求URL:(…)/_layouts/ArikanliHolding.YurticiKargo.WebSite/ajaxproxy-
    sswservices.aspx/GetTownByCity

    请求方式:POST

    状态代码:200正常

  • 请求有效负载
    树项中,您将看到

    请求有效负载:{cityId:34}
    标题

  • 这将指导我们实现python代码

  • 让我们做吧

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-    
    import requests
    import json
    # import simplejson as json
    baseUrl = 'http://www.yurticikargo.com/'
    ajaxRoot = '_layouts/ArikanliHolding.YurticiKargo.WebSite/'
    getTown = 'ajaxproxy-sswservices.aspx/GetTownByCity'
    urlGetTown = baseUrl + ajaxRoot + getTown
    headers = {'content-type': 'application/json','encoding':'utf-8'}  # We are sending JSON headers, equivalent to Python dictionary
    for plaka in range(1,82): # Because Turkiye has number plates from 1 to 81
        payload = {'cityId':plaka}
        r = requests.post(url, data=json.dumps(payload), headers=headers)
        data = r.json() # Returning data is in JSON format, if you need HTML use r.content()
        # ... Process the fetched data with JSON parser,
        # If HTML format, Beautiful Soup, Lxml, or etc...
    

    请注意,此代码是我工作代码的一部分,是动态编写的,最重要的是我没有测试它。运行它可能需要一些小的修改。

    只需一点Python编码就可以了

    我写了一个简单的脚本来获取货运办公室的位置

    第一步

  • 例如,用土耳其语用Google Chrome打开ajax页面,但您可以理解它。
  • 按F12键显示底部开发人员工具,并导航到网络选项卡
  • 导航底部的XHR选项卡
  • 通过在第一个组合框中选择一个项目来发出AJAX请求。然后转到标题选项卡
  • 您将在左窗格中获得TownByCity,单击它并检查它

    请求URL:(…)/_layouts/ArikanliHolding.YurticiKargo.WebSite/ajaxproxy-
    sswservices.aspx/GetTownByCity

    请求方式:POST

    状态代码:200正常

  • 请求有效负载
    树项中,您将看到

    请求有效负载:{cityId:34}
    标题

  • 这将指导我们实现python代码

  • 让我们做吧

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-    
    import requests
    import json
    # import simplejson as json
    baseUrl = 'http://www.yurticikargo.com/'
    ajaxRoot = '_layouts/ArikanliHolding.YurticiKargo.WebSite/'
    getTown = 'ajaxproxy-sswservices.aspx/GetTownByCity'
    urlGetTown = baseUrl + ajaxRoot + getTown
    headers = {'content-type': 'application/json','encoding':'utf-8'}  # We are sending JSON headers, equivalent to Python dictionary
    for plaka in range(1,82): # Because Turkiye has number plates from 1 to 81
        payload = {'cityId':plaka}
        r = requests.post(url, data=json.dumps(payload), headers=headers)
        data = r.json() # Returning data is in JSON format, if you need HTML use r.content()
        # ... Process the fetched data with JSON parser,
        # If HTML format, Beautiful Soup, Lxml, or etc...
    
    请注意,此代码是我工作代码的一部分,是动态编写的,最重要的是我没有测试它。运行它可能需要一些小的修改。