我目前正在学习使用scrapy进行网络抓取,并尝试/学习各种方法来登录stackoverflow,然后提取一些问题来练习网络抓取。我已经使用以下代码使用scrapy和pyquery成功登录到stackoverflow:
import scrapy
import requests
import getpass
from pyquery import PyQuery
from scrapy import FormRequest
from scrapy.utils.response import open_in_browser
class QuoteSpider(scrapy.Spider):
name = 'stackoverflow'
start_urls = ['https://stackoverflow.com/users/login']
# def login_page(self):
# Fetch the fkey
login_page = requests.get(start_urls[0]).text
pq = PyQuery(login_page)
fkey = pq('input[name="fkey"]').val()
# Prompt for email and password
email = input("Email: ")
password = getpass.getpass()
# Login
response = requests.post(
start_urls[0],
data = {
'email': email,
'password': password,
'fkey': fkey
})
print(response)
def parse(self, response):
open_in_browser(response)
def get_questions_link(self):
pass
但作为回应,它只给我成功状态代码,即 200,使用以下命令运行:
scrapy crawl stackoverflow -L WARN
Email: test@gmail.com
Password:
<Response [200]>
那么,我怎样才能得到整个 html 页面数据的响应,以便我可以抓取更多的问题/数据。解析功能也在工作,但它只是打开 stackoverflow 登录页面。