python - 如何使用 Python 抓取 PHP Ajax?

标签 python ajax screen-scraping

我是 python 的初学者,我正在尝试构建一个 python 程序,它将从 http://turnpikeshoes.com/shop/TCF00003 中抓取产品描述。 . Python 有很多库,我相信有很多方法可以实现我的目标。我已经使用请求完成了一些成功的抓取,但是我正在寻找的字段没有显示出来,使用 chrome 检查器我发现了一个 Ajax POST 请求。

这是我的代码

from lxml import html
import requests

url = 'http://turnpikeshoes.com/shop/TCF00003'
#URL
headers = {'user-agent': 'my-app/0.0.1'}
#Header info sent to server
page = requests.get(url, headers=headers)
#Get response
tree = html.fromstring(page.content)
#Page Content


ShortDsc = tree.xpath('//span[@itemprop="reviewBody"]/text()')

LongDsc = tree.xpath('//li[@class="productLongDescription"]/text()')

print 'ShortDsc:', ShortDsc
print 'LongDsc:', LongDsc

我想我需要直接向 admin-ajax.php 发送请求

非常感谢任何帮助

最佳答案

如果你想抓取 javascript 内容,你应该在这种情况下尝试使用 selenium:

from selenium import webdriver
import time

driver = webdriver.PhantomJS()
driver.get("http://turnpikeshoes.com/shop/TCF00003")
time.sleep(5)

LongDsc = driver.find_element_by_class_name("productLongDescription").text

print 'LongDsc:', LongDsc

顺便说一句,你还应该安装 PhantomJS 作为 headless 浏览器。

关于python - 如何使用 Python 抓取 PHP Ajax?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38229200/

相关文章:

python - 在Scrapy的LinkExtractor中使用 "allow"关键字

javascript - 将 php 数组传递给 PHP 函数内的 javascript 数组

python - 将表单数据发送到aspx页面

python - 使用 Python 将多个 URL 中的不同变量抓取到一个 CSV 文件中

javascript - 抓取数据、 headless 浏览器和 Python

python - 打印出现两次的连续数字?

python - 将日期范围拆分为相等的子范围,并将剩余时间分配给最后一个子范围

javascript - TinyMCE UpdatePanel 重新初始化问题

python - 如何优化网页抓取代码片段以使其运行速度更快?

C# WebBrowser 控件——在 AJAX 之后获取文档元素?