ฉันใช้ Twill เพื่อดึงข้อมูลหน้าเว็บที่มีข้อมูล .txt ที่ต้องการ ดังนั้นฉันจึงสามารถจัดเก็บเป็นไฟล์ Excel ได้ ข้อมูลมีการป้องกันด้วยรหัสผ่าน ดังนั้นฉันจึงเข้าสู่ระบบจากหน้า /user/login
รหัสของฉันประสบปัญหาโดยพยายามเข้าถึงหน้าข้อความจากหน้าจอเข้าสู่ระบบและไปชนกับกำแพงที่เป็น HTML แทนที่จะเป็น .txt
เมื่อฉันเรียกใช้การเข้าสู่ระบบ:
path = "https://naturalgasintel.com/ext/resources/Data-Feed/Daily-GPI/"
end = "td.txt"
go("http://www.naturalgasintel.com/user/login")
showforms()
fv("2", "user[email]", user_email)
fv("2", "user[password]", user_password)
fv("2", "commit", "Login")
datafilelocation = path + year + "/" + month + "/" + date + end
go(datafilelocation)
เมื่อรหัสของฉันไปถึง go(datafilelocation)
ฉันจะได้รับสิ่งนี้:
==> at https://www.naturalgasintel.com/user/login?referer=%2Fext%2Fresources%2FData-Feed%2FDaily-GPI%2F2018%2F12%2F20181221td.txt
Out[18]: u'https://www.naturalgasintel.com/user/login?referer=%2Fext%2Fresources%2FData-Feed%2FDaily-GPI%2F2018%2F12%2F20181221td.txt'
ดังนั้นมันจะชี้ไปที่ referer
แทนที่จะเป็นข้อความจริงเมื่อฉันต้องการไปที่หน้านั้น:
https://naturalgasintel.com/ext/resources/Data-Feed/Daily-GPI/2018/12/20181221td.txt
เหตุผลที่ฉันใช้ fv("2", "commit", "Login")
แทน submit()
คือเมื่อฉันไปที่หน้าเว็บ มันจะให้สิ่งนี้กับฉัน:
showforms()
Form name=quick-search (#1)
## ## __Name__________________ __Type___ __ID________ __Value__________________
1 q text q Search
Form #2
## ## __Name__________________ __Type___ __ID________ __Value__________________
1 utf8 hidden (None) ✓
2 authenticity_token hidden (None) pnFnPGhMomX2Lyh7/U8iGOZKsiQnyicj7BWT ...
3 referer hidden (None) https://www.naturalgasintel.com/ext/ ...
4 popup hidden (None) false
5 user[email] text user_email
6 user[password] password user_pas ...
7 user[remember_me] hidden (None) 0
8 user[remember_me] checkbox user_rem ... None
9 commit submit (None) Login
จากนั้นมันจะบอกฉันหลังจากฉัน submit()
:
Note: submit is using submit button: name="commit", value="Login"
ทางออกที่ดีที่สุดในการแก้ไขปัญหานี้คืออะไร?
/user/login
โดยจะส่ง URL ไปยังข้อมูลในพารามิเตอร์referrer
เพื่อให้สามารถเปลี่ยนเส้นทางคุณกลับมาได้เมื่อคุณเข้าสู่ระบบแล้ว - person cody   schedule 22.12.2018