【问题标题】:How to Post data to website and get content of website using Web Scraping python如何使用 Web Scraping python 将数据发布到网站并获取网站内容
【发布时间】:2021-06-08 16:20:32
【问题描述】:

我有一个网站和一个输入数据,我需要使用 Web Scraping 填写该网站。我正在使用 post 方法,但我没有得到我想要的预期输出。 运行下面给出的代码后,我得到了一些数据,但这与我使用检查时看到的网站响应不同。 输入数据为 CP Number = 16803

代码:

import requests
from bs4 import BeautifulSoup 
url = "https://www.icsi.in/student/Members/MemberSearch.aspx"
payload = {'dnn$ctr410$MemberSearch$txtCpNumber': 16803}
r = requests.post(url, params=payload)
soup = BeautifulSoup(r.content, 'html.parser')
print(soup)

预期输出

发布输入数据后,我将获得用户名、地址等

【问题讨论】:

    标签: python web-scraping beautifulsoup


    【解决方案1】:

    改变

    r = requests.post(url, params=payload)
    

    r = requests.post(url, data=payload)
    

    params 变成查询字符串。在你的情况下,你有 url u'https://www.icsi.in/student/Members/MemberSearch.aspx?dnn%24ctr410%24MemberSearch%24txtCpNumber=16803'

    更新

    这是一个简单的scraper,用js编写,使用puppeteer

    const puppeteer = require('puppeteer');
    
    const URL = 'https://www.icsi.in/student/Members/MemberSearch.aspx';
    
    (async () => {
      const browser = await puppeteer.launch({
        headless: false // for debugging
      });
    
      const page = await browser.newPage();
      await page.goto(URL);
      await page.focus('#dnn_ctr410_MemberSearch_txtFirstName');
      page.keyboard.type('First Name');
      await page.click('#dnn_ctr410_MemberSearch_btnSearch');
    
      const html = await page.evaluate(() => document.body.innerHTML);
    
      await browser.close();
    })();
    

    使用以下命令运行:

    npm i puppeteer
    node scraper.js
    

    【讨论】:

    • 得到这个 TypeError: request() got an unexpected keyword argument 'body'
    • 对不起。我的错。参数应该是data。检查更新的帖子。
    • 修复你的有效载荷。快速浏览一下,它将需要您执行其他步骤。首先获取页面并提取所有必须出现在帖子正文中的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 2012-04-18
    • 1970-01-01
    相关资源
    最近更新 更多