উইজেট ব্যবহার করে কোনও সাইট থেকে পিডিএফ ফাইল ডাউনলোড করতে কুকি সেট করা দরকার


8

আমি একটি খবরের কাগজের সাইটে অ্যাক্সেস করতে চাই এবং তারপরে সেগুলির প্রতিলিপিগুলি (পিডিএফে) ডাউনলোড করতে চাই। সাইটের আমার ইমেল ঠিকানা এবং পাসওয়ার্ড ব্যবহার করে লগ ইন করতে হবে এবং তারপরে এটি আমাকে সেই পিডিএল ইউআরএলগুলি অ্যাক্সেস করার অনুমতি দেয়।

আমি উইজেটে 'আমার সেশনটি সেট করতে' সমস্যায় পড়ছি । আমি যখন আমার ব্রাউজার থেকে সাইটে লগইন করি তখন এটি দুটি কুকির মান সেট করে:

UserID=abc@gmail.com
Password=12345

আমি চেষ্টা করেছিলাম:

wget --post-data "UserID=abc@gmail.com&Password=12345" http://epaper.abc.com/login.aspx

তবে, এটি সবেমাত্র লগইন পৃষ্ঠাটি ডাউনলোড করেছে এবং এটি স্থানীয়ভাবে সংরক্ষণ করেছে।

লগইন পৃষ্ঠায় ফোরামের দুটি ক্ষেত্র রয়েছে:

txtUserID
txtPassword

এবং রেডিওবোটনগুলি এর মতো:

<input id="rbtnManchester" type="radio" checked="checked" name="txtpub" value="44">

অন্য একটি বোতাম:

<input id="rbtnLondon" type="radio" name="txtpub" value="64">

যদি আমি লগইন.এএসপিএক্স পৃষ্ঠায় পোস্ট করি তবে আমি একই আউটপুট পাব

wget --post-data "txtUserID=abc@gmail.com&txtPassword=12345&txtpub=44" http://epaper.abc.com/login.aspx

যদি আমি করি:

- সেভ-কুকিজ abc_cookies.txt

এটিতে ডিফল্ট সামগ্রী ছাড়া অন্য কিছু আছে বলে মনে হয় না।

শেষের জন্য, যদি আমি --debugএটিও করি তবে এটি বলছে:

...
Set-Cookie: ASP.NET_SessionId=05kphcn4hjmblq45qgnjoe41; path=/; HttpOnly
...
Stored cookie epaper.abc.com -1 (ANY) / <session> <insecure> [expiry none] ASP.NET_SessionId 05kphcn4hjmblq45qgnjoe41
Length: 107253 (105K) [text/html]
Saving to: `login.aspx'
...
Saving cookies to abc_cookies.txt.

তবে, abc_cookies.txt কেবলমাত্র নিম্নলিখিতটি দেখায়:

# HTTP cookie file.
# Generated by Wget on 2011-08-16 08:03:05.
# Edit at your own risk.

(স্ট্যাক ওভারফ্লোতে কেন আমি কোনও প্রতিক্রিয়া পাচ্ছি না তা আমি নিশ্চিত নই - সম্ভবত সুপার ইউজারই আরও ভাল একটি সাইট - কুকিজ সেট করা দরকার এমন কোনও সাইট থেকে পিডিএফ ফাইল ডাউনলোড করতে উইজেট ব্যবহার করে ))


সম্পাদনা 1

C:\Temp>wget --cookies=on --keep-session-cookies --save-cookies abc_cookies.txt --post-data "txtUserID=abc%40gmail.com&txtPassword=password&txtpub=44&chkbox=checkbox&submit.x=48&submit.y=7" http://epaper.abc.com/login.aspx --debug
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc
DEBUG output created by Wget 1.11.4 on Windows-MinGW.

--2011-08-18 08:15:59--  http://epaper.abc.com/login.aspx
Resolving epaper.abc.com... seconds 0.00, 999.999.99.99
Caching epaper.abc.com => 999.999.99.99
Connecting to epaper.abc.com|999.999.99.99|:80... seconds 0.00, connected.
Created socket 300.
Releasing 0x00a2ae80 (new refcount 1).

---request begin---
POST /login.aspx HTTP/1.0
User-Agent: Wget/1.11.4
Accept: */*
Host: epaper.abc.com
Connection: Keep-Alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 100

---request end---
[POST data: txtUserID=abc%40gmail.com&txtPassword=password&txtpub=44&chkbox=checkbox&submit.x=48&submit.y=7]
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Connection: keep-alive
Date: Thu, 18 Aug 2011 02:46:17 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Set-Cookie: ASP.NET_SessionId=owcrje55yl45kgmhn43gq145; path=/; HttpOnly
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 107253

---response end---
200 OK
Registered socket 300 for persistent reuse.

Stored cookie epaper.abc.com -1 (ANY) / <session> <insecure> [expiry none] ASP.NET_SessionId owcrje55yl45kgmhn43gq145
Length: 107253 (105K) [text/html]
Saving to: `login.aspx.1'

100%[======================================================================================================================>] 107,253     24.9K/s   in 4.2s

2011-08-18 08:16:05 (24.9 KB/s) - `login.aspx.1' saved [107253/107253]

Saving cookies to abc_cookies.txt.
Done saving cookies.

C:\Temp>wget --referer=http://epaper.abc.com/login.aspx --cookies=on --load-cookies abc_cookies.txt --keep-session-cookies --save-cookies abc_cookies.txt http://epaper.abc.com/PagePrint/16_08_2011_001.pdf --debug
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc
DEBUG output created by Wget 1.11.4 on Windows-MinGW.


Stored cookie epaper.abc.com -1 (ANY) / <session> <insecure> [expiry none] ASP.NET_SessionId owcrje55yl45kgmhn43gq145
--2011-08-18 08:16:12--  http://epaper.abc.com/PagePrint/16_08_2011_001.pdf
Resolving epaper.abc.com... seconds 0.00, 999.999.99.99
Caching epaper.abc.com => 999.999.99.99
Connecting to epaper.abc.com|999.999.99.99|:80... seconds 0.00, connected.
Created socket 300.
Releasing 0x00598290 (new refcount 1).

---request begin---
GET /PagePrint/16_08_2011_001.pdf HTTP/1.0
Referer: http://epaper.abc.com/login.aspx
User-Agent: Wget/1.11.4
Accept: */*
Host: epaper.abc.com
Connection: Keep-Alive
Cookie: ASP.NET_SessionId=owcrje55yl45kgmhn43gq145

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Connection: keep-alive
Date: Thu, 18 Aug 2011 02:46:30 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
content-disposition: attachement; filename=Default_logo.gif
Cache-Control: private
Content-Type: image/GIF
Content-Length: 4568

---response end---
200 OK
Registered socket 300 for persistent reuse.
Length: 4568 (4.5K) [image/GIF]
Saving to: `16_08_2011_001.pdf'

100%[======================================================================================================================>] 4,568       7.74K/s   in 0.6s

2011-08-18 08:16:14 (7.74 KB/s) - `16_08_2011_001.pdf' saved [4568/4568]

Saving cookies to abc_cookies.txt.
Done saving cookies.

Abc_cookies.txt এর বিষয়বস্তু

epaper.abc.com       FALSE   /       FALSE   0       ASP.NET_SessionId       owcrje55yl45kgmhn43gq145

আমার সন্দেহ হয় আপনি কোনও প্রতিক্রিয়া পাচ্ছেন না কারণ উইজেটের আরও উন্নত ব্যবহারের বিষয়ে বিশেষজ্ঞের সংখ্যা কম। :(
jcrawfordor

@ ফ্র্যাঙ্ক - প্রারম্ভিক লগইন উইজেটে ক্যাপ-সেশন-কুকিজ ব্যবহার করে দেখুন, আমার উত্তর নীচে দেখুন।
এইটবিটটনি

লগইন পৃষ্ঠার ইউআরএল, বা লগইন পৃষ্ঠা জমা দেওয়া ইউআরএল লগইন.এএসপিএক্স?
এডওয়ার্ড শার্টন

উত্তর:


4

আমি মনে করি আপনার কেবল --keep-session-cookiesসেশন কুকিজ সংরক্ষণ করার জন্য ব্যবহার করা উচিত, কেবল --save-cookies(আপনার উভয়ের প্রয়োজন নেই)।

মূলত, আপনি

wget --keep-session-cookies --save-cookies ..... url

লগইন এবং আপনার সেশন কুকি পেতে।

তারপর

wget --load-cookie ...... url

পিডিএফ ডাউনলোড করতে।


:( কাজ করেনি ... পাশা নেই ...
সিলিকনপি

@ ফ্র্যাঙ্ক - সুতরাং প্রতিটি পর্যায়ে যা ঘটেছিল, আপনি কি ডিস্কে কুকিজ প্রত্যাশা অনুযায়ী পেয়েছিলেন, যদি আপনি শিরোনামগুলি অন্তর্ভুক্ত করেন তবে আপনি কী প্রতিক্রিয়া পাচ্ছেন, ইত্যাদি etc. আপনি এখন কী চেষ্টা করেছেন এবং কী ফিরে এসেছে তা দিয়ে আপনি প্রশ্ন আপডেট করতে পারবেন?
এইটবিটটনি

হাই টনি - সাহায্য করার চেষ্টা করার জন্য ধন্যবাদ - আমি এই পুরো জিনিসটি নিয়ে বিস্মিত হই!
সিলিকনপি

হাই টনি - আপনি কি বিস্তারিত সম্পাদনা 1 টি দেখার সুযোগ পেয়েছেন?
সিলিকনপি

হ্যাঁ, কিছুই লাফিয়ে উঠেনি। আমার একমাত্র প্রশ্নটি লগইন-এএসপিএক্স-এ রয়েছে যখন আপনি এটি প্রথম উইজেট থেকে ফিরে পেয়েছেন? এটি কি আপনাকে সফলভাবে লগ ইন করার ইঙ্গিত দেয়?
এইটবিটটনি

2

সম্ভবত এটি সাহায্য করবে। যে সাইটটিতে আমি লগিন করার চেষ্টা করছিলাম সেখানে কয়েকটি লুকানো ক্ষেত্র ছিল যা সফলভাবে লগইন করার আগে আমার পাওয়া দরকার ছিল। সুতরাং প্রথম উইজেট অতিরিক্ত ক্ষেত্রগুলি অনুসন্ধান করার জন্য লগইন পৃষ্ঠা পায়, দ্বিতীয় উইজেট সাইটে লগইন করে এবং কুকিজগুলি সংরক্ষণ করে, তৃতীয়টি সেই কুকিজগুলি আপনার পৃষ্ঠাটি পরে পেতে ব্যবহার করে।

#!/bin/bash

# get the login page to get the hidden field data
wget -a log.txt -O loginpage.html http://foobar/default.aspx
hiddendata=`cat loginpage.html | grep value | grep foobarhidden | tr '=' ' ' | awk '{print $9}' | sed s/\"//g`
rm loginpage.html

# login into the page and save the cookies
postData=user=fakeuser'&'pw=password'&'foobarhidden=${hiddendata}
wget -a log.txt -O /dev/null --post-data ${postData} --keep-session-cookies --save-cookies cookies.txt http://foobar/default.aspx

# get the page you're after
wget -a log.txt -O results.html --load-cookies cookies.txt http://foobar/lister.aspx?id=42
rm cookies.txt

এই অন্যান্য এসও পোস্টে কিছু দরকারী তথ্য রয়েছে :


1
দয়া করে আপনার উত্তরটি ডি-ব্যাক্তিগত করার চেষ্টা করুন ("আমি" মুছে ফেলুন)। এগুলি বাদে, আপনি যে কোনও একটির জন্য প্রথম উত্তর, আপনার দুর্দান্ত কাজ।
উইজলগ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.