【发布时间】:2018-07-19 04:41:59
【问题描述】:
我正在尝试创建一个应用程序来抓取广告(例如公寓出租),并且只需单击外部网站即可创建类似的广告。抓取已完成,但我不知道如何处理添加此广告。授权很简单,所以我自己做的,但我不知道如何获得这个表格,因为在我填写这个表格之前,我必须选择一些带有js按钮的选项,如下图所示。
部分授权,登录。
$crawler = $client->request('GET', 'https://www.gumtree.pl/login.html');
dump($crawler->html());
$form = $crawler->filter("form")->form();
$crawler = $client->submit($form, array(
'email' => 'email',
'password' => 'password'
));
我没有用表单附加另一部分,因为它无论如何都不起作用。
网址格式:https://www.gumtree.pl/post.html
外观:https://i.imgur.com/F00oLab.gifv
@edit
我通过浏览器发出了一个请求,然后我尝试通过 symfony 应用程序发出同样的请求,但它仍然无法正常工作。
我的 chrome 请求:
我对 symfony 的尝试:
$res = $client->get('https://www.gumtree.pl/post.html', [
'auth' => [
'username',
'password'
],
'form_params' => [
'locationId' => '3200025',
'categoryId' => '9073',
'machineId' => 'xxxx',
'DwellingForSaleBy' => 'ownr',
'DwellingType' => 'flat',
'AreaInMeters' => '50',
'NumberRooms' => '3',
'NumberBathrooms' => '10',
'Parking' => 'grage',
'Title' => 'titleeeeeeeee',
'Description' => '<p>test desc</p>',
'priceTypes' => 'FIXED',
'Price' => '459999',
'currencyValues' => 'PLN',
'UserName' => 'username',
'Email' => 'email',
]
]);
但是 Symfony 中的请求返回代码 200,而它应该返回 302。
响应转储:
有什么办法解决吗?
【问题讨论】:
-
我认为它不应该返回 302,因为它是一个 ajax 请求。我认为重定向是由javascript处理的
标签: php symfony web-scraping guzzle goutte