Web scraping txt模式下的网页抓取
我目前正在使用watir对一个网站进行网页抓取,从通常的HTML源中隐藏所有数据。如果我没有错的话,他们正在使用XML和那些AJAX技术来隐藏它。Firefox可以看到它,但它是通过“DOM选择源”显示的 一切都很好,但现在我正在寻找一个等效的工具作为瓦蒂尔,但一切都需要做没有浏览器。一切都需要在txt文件中完成 事实上,现在watir正在使用我的浏览器模拟页面,并返回我正在查看的全部html代码。我想要相同的,但没有浏览器 可能吗 谢谢 当做Web scraping txt模式下的网页抓取,web-scraping,Web Scraping,我目前正在使用watir对一个网站进行网页抓取,从通常的HTML源中隐藏所有数据。如果我没有错的话,他们正在使用XML和那些AJAX技术来隐藏它。Firefox可以看到它,但它是通过“DOM选择源”显示的 一切都很好,但现在我正在寻找一个等效的工具作为瓦蒂尔,但一切都需要做没有浏览器。一切都需要在txt文件中完成 事实上,现在watir正在使用我的浏览器模拟页面,并返回我正在查看的全部html代码。我想要相同的,但没有浏览器 可能吗 谢谢 当做 Tak您最好的猜测是使用类似的东西并捕获浏览器正在
Tak您最好的猜测是使用类似的东西并捕获浏览器正在执行的AJAX请求的URL。
这样,您就可以通过使用任何HTTP库模拟这些调用来获取“重要”数据了您最好的猜测是使用类似的方法并捕获浏览器正在执行的AJAX请求的URL。
这样,您就可以通过使用任何HTTP库模拟这些调用来获取“重要”数据了只需一点Python编码就可以了 我写了一个简单的脚本来获取货运办公室的位置 第一步
请求URL:(…)/_layouts/ArikanliHolding.YurticiKargo.WebSite/ajaxproxy-
sswservices.aspx/GetTownByCity
请求方式:POST
状态代码:200正常
请求有效负载
树项中,您将看到
请求有效负载:{cityId:34}
标题#!/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编码就可以了 我写了一个简单的脚本来获取货运办公室的位置 第一步
请求URL:(…)/_layouts/ArikanliHolding.YurticiKargo.WebSite/ajaxproxy-
sswservices.aspx/GetTownByCity
请求方式:POST
状态代码:200正常
请求有效负载
树项中,您将看到
请求有效负载:{cityId:34}
标题#!/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...
请注意,此代码是我工作代码的一部分,是动态编写的,最重要的是我没有测试它。运行它可能需要一些小的修改。