[TwitterBridge] Get cookies before sending request (#1232)
* [TwitterBridge] Get cookies before sending request Twitter now requires cookies to be set before requesting a page. This will fetch the cookies and send them to `getSimpleHTMLDOM()`. * Formatting fixes
This commit is contained in:
parent
eb942bc498
commit
2bb9480555
1 changed files with 26 additions and 1 deletions
|
@ -170,8 +170,10 @@ EOD
|
||||||
|
|
||||||
public function collectData(){
|
public function collectData(){
|
||||||
$html = '';
|
$html = '';
|
||||||
|
$page = $this->getURI();
|
||||||
|
$cookies = $this->getCookies($page);
|
||||||
|
|
||||||
$html = getSimpleHTMLDOM($this->getURI());
|
$html = getSimpleHTMLDOM($page, array("Cookie: $cookies"));
|
||||||
if(!$html) {
|
if(!$html) {
|
||||||
switch($this->queriedContext) {
|
switch($this->queriedContext) {
|
||||||
case 'By keyword or hashtag':
|
case 'By keyword or hashtag':
|
||||||
|
@ -428,4 +430,27 @@ EOD;
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getCookies($pageURL){
|
||||||
|
|
||||||
|
$ctx = stream_context_create(array(
|
||||||
|
'http' => array(
|
||||||
|
'follow_location' => false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$a = file_get_contents($pageURL, 0, $ctx);
|
||||||
|
|
||||||
|
//First request to get the cookie
|
||||||
|
$cookies = '';
|
||||||
|
foreach($http_response_header as $hdr) {
|
||||||
|
if(stripos($hdr, 'Set-Cookie') !== false) {
|
||||||
|
$cLine = explode(':', $hdr)[1];
|
||||||
|
$cLine = explode(';', $cLine)[0];
|
||||||
|
$cookies .= ';' . $cLine;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return substr($cookies, 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue