Wireshark没有检测到Python的Web抓取https请求

问题描述

我正在尝试使用python请求和漂亮的汤做一些Web爬取。这个想法是比较不同网站的部门价格并分析报价。

我成功地从portalinmobiliario.com提取了我需要的东西,但是我无法在toctoc.com上做同样的事情。

使用wireshark和ssl解密,我能够在请求中获取标头和cookie,并且将相同的数据放在标头上,但是它没有用,令我惊讶的是,我无法在Wireshark上检测代码的http2请求。

这些是探究者请愿书的标题

enter image description here

这是执行此操作的代码

def get_data_toctoc(link,pageNo):  
headers = {
  'Method': 'GET','Authority': 'www.toctoc.com','Scheme':'https','Path': '/Arriendo/departamento/?dormitoriodesde=0&dormitoriohasta=5&banosdesde=0&banoshasta=5&superficeDesde=&superficiehasta=&moneda=2&preciodesde=&preciohasta=&ordenarpor=relevantes&cargarmas=1&tipoOperacion=0','Connection': 'keep-alive','Cache-control': 'max-age=0','Sec-ch-ua': '"\\Not;A\"Brand";v="99","Google Chrome";v="85","Chromium";v="85"','Sec-ch-ua-mobile': '?0','Sec-fetch-user': '?1','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/85.0.4183.121 Safari/537.36','sec-fetch-site': 'none','sec-fetch-mode': 'navigate','Sec-Fetch-Dest': 'document','Referer': 'https://www.toctoc.com/','Accept-Encoding': 'gzip,deflate,br','Accept-Language': 'es-ES,es;q=0.9','Cookie': '_gcl_au=1.1.437893505.1601645096; uim=rB8taF93KiemaD4OG6kPAg==; _ga=GA1.2.391754157.1601645098; _hjid=d5e5ea3f-16b8-4733-a656-ba55275f94a7; optimizelyEndUserId=oeu1601675924372r0.9275947786520664; optimizelySegments=%7B%222204271535%22%3A%22gc%22%2C%222215970531%22%3A%22false%22%2C%222232940041%22%3A%22referral%22%7D; optimizelyBuckets=%7B%7D; mp_29ae90688062e4e2e6d80b475cef8685_mixpanel=%7B%22distinct_id%22%3A%20%22174eb531a065d7-0c6d6def72363c-333376b-1fa400-174eb531a074ca%22%2C%22%24device_id%22%3A%20%22174eb531a065d7-0c6d6def72363c-333376b-1fa400-174eb531a074ca%22%2C%22%24search_engine%22%3A%20%22google%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2F5puloy42zxa-496ff2e9c6d22116-0-colab.googleusercontent.com%2F%22%2C%22%24initial_referring_domain%22%3A%20%225puloy42zxa-496ff2e9c6d22116-0-colab.googleusercontent.com%22%7D; __insp_slim=1601675926416; __insp_wid=2107690165; __insp_nv=true; __insp_targlpu=aHR0cHM6Ly93d3cudG9jdG9jLmNvbS9wcm9waWVkYWRlcy9hcnJpZW5kb3BhcnRpY3VsYXJzci9kZXBhcnRhbWVudG8vc2FudGlhZ28vYXZkYS1saWJlcnRhZG9yLWJlcm5hcmRvLW8taGlnZ2lucy0zNTEtNjA2YS1zYW50aWFnby8xNTYxODMzP289cmVzdWx0YWRvX2xpc3RhX3Nlb19pbWc%3D; __insp_targlpt=RGVwYXJ0YW1lbnRvIGVuIGFycmllbmRvIGVuIFNhbnRpYWdvLCBhdmRhIExpYmVydGFkb3IgQmVybmFyZG8gT2BoaWdnaW5zIDM1MSA2MDZBLCBTYW50aWFnbw%3D%3D; __insp_norec_sess=true; _gid=GA1.2.1572256016.1601908790; _gat=1'
}

r = requests.get(link.format(pageNo),headers=headers)#,proxies=proxies)
content = r.content
soup = BeautifulSoup(content,features="html.parser")
print(soup.prettify())

当我扫描对此函数调用时,我得到了。

enter image description here

enter image description here

并且代码获取了一些基本的HTML,没有有用的信息。

<!DOCTYPE html>
<html data-reactroot="">
<head>
<Meta content="width=device-width,initial-scale=1,shrink-to-fit=no" name="viewport"/>
<Meta charset="utf-8"/>
<Meta content="!" name="fragment"/>
<Meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/>
<Meta content="index,follow" name="robots"/>
<Meta content="ES" name="language"/>
<Meta content="TOCTOC.com" name="author"/>
<Meta content="Septiembre,2013" name="creationdate"/>
<Meta content="global" name="distribution"/>
<Meta content="general" name="rating"/>
<Meta content="#41aee8" name="theme-color"/>
<Meta content="summary_large_image" name="twitter:card"/>
<Meta content="&amp;#64;Toctoccom" name="twitter:site"/>
<Meta content="&amp;#64;Toctoccom" name="twitter:creator"/>
<Meta content="TOCTOC.com:propiedades,casas y deptos. Asesórate antes de comprar" name="twitter:title"/>
<Meta content="TOCTOC.com el sitio obligatorio antes de comprar,vender o arrendar una propiedad. Asesórate antes de tomar una decisión y encuentra toda la oferta dentro de este sitio" name="twitter:description"/>
<Meta content="https://d1cfu8v5n1wsm.cloudfront.net/toctoc/img/toctoc-twitter.jpg" name="twitter:image"/>
<Meta content="TOCTOC.com sitio obligatorio antes de comprar,vender o arrendar una propiedad en Chile" property="og:title"/>
<Meta content="Asesórate si buscas vender,comprar o arrendar una caso o departamento. En TOCTOC.com podrás revisar información de la propiedad,valorizar tu casa,conocer tu barrio y mucho más!" property="og:description"/>
<Meta content="website" property="og:type"/>
<Meta content="https://www.toctoc.com/" property="og:url"/>
<Meta content="TOCTOC.com" property="og:site_name"/>
<Meta content="https://d1cfu8v5n1wsm.cloudfront.net/toctoc/img/logo-toctoc-200x200.jpg" property="og:image"/>
<Meta content="1751414638477283" property="fb:app_id"/>
<Meta content="" name="description"/>
<Meta content="Resultados Busqueda" name="friendly-title"/>
<Meta content="¿Buscas un departamento en venta en Ñuñoa? Revisa nuestros departamentos nuevos y usados,de entre 2 y 3 dormitorios en el listado." name="description"/>
<Meta content="Arriendos de Casa en Buin,preciosa casa en amplio terreno en condominio pleno centro de Buin y lindo entorno a pasos de varios servicios. Más detalles aquí!" name="description"/>
<Meta content="Venta de Casas y propiedades en TOCTOC.com. Tenemos una gran variedad de alternativas de casas y propiedades. @R_233_4045@e para más detalles aquí!" name="description"/>
<Meta content="Ventas de Departamento en la región Metropolitana,cuando lo que necesitas es cambiarte de domicilio,sin importar el motivo. TOCTOC.com te ayudamos con este proceso!" name="description"/>
<Meta content="Venta de Casas en la Florida. Por Que vender una casa en La Florida es una de las mejores alternativas de vivienda. Más detalles entra aquí!" name="description"/>
<Meta content="¿Buscas departamentos en arriendo en Quinta normal? Revisa en TOCTOC.com el listado de propiedades más completo ¡Y actualizado diariamente!" name="description"/>
<Meta content="Arriendos de Departamentos en Santiago,empieza una vida independiente y busca una gran variedad de arriendos de departamentos en Santiago. Detalles aquí!" name="description"/>
<Meta content="¿Buscas casas en venta en Viña del Mar? Aquí el listado más completo,actualizado diariamente. Grandes ofertas con la información que necesitas" name="description"/>
<Meta content="Arriendos de Casas en Puente Alto,una comuna que podrás hacer vida de familia. En TOCTOC tenemos variedad de arriendos de casas en Puente Alto." name="description"/>
<Meta content="Ventas de Departamentos en Providencia. En TOCTOC.Com tenemos varias alternativas de ventas de departamentos en Providencia. Más detalles haz clic aquí!" name="description"/>
<Meta content="Casas en arriendos en La Florida. Por que arrendar una casa en La Florida es una de las mejores alternativas de vivienda. Más detalles entra aquí!" name="description"/>
<Meta content="¿Buscas casas en venta en Ñuñoa? Aquí el listado más completo,actualizado diariamente. Grandes ofertas con la información que necesitas" name="description"/>
<Meta content="¿Buscas casas en arriendo en La Reina? Aquí el listado más completo,actualizado diariamente. Grandes ofertas con la información que necesitas." name="description"/>
<Meta content="¿Buscas casas en venta en La Reina? Aquí el listado más completo,actualizado diariamente. Grandes ofertas con la información que necesitas" name="description"/>
<Meta content="Venta de Casas en Santiago,empieza una nueva vida y busca una gran variedad de ventas de casas en Santiago,amplias y buena conectividad. Detalles aquí!" name="description"/>
<Meta content="¿Buscas casas en arriendo en Santiago? Aquí el listado más completo,actualizado diariamente. Grandes ofertas con la información que necesitas" name="description"/>
<Meta content="Ventas de Casa en Peñaflor,disfrute de la tranquilidad en un exclusivo sector en la comuna de Peñaflor,busca en TOCTOC.com venta de casas en peñaflor y disfruta de tu nuevo hogar!" name="description"/>
<Meta content="Arriendos de casas en Maipú,una de las comunas más grandes de la región Metropolitana. Casas en arriendo con TOCTOC.Com. @R_233_4045@e para más detalles aquí!" name="description"/>
<Meta content="Arriendos De Casa en Ñuñoa,navega en TOCTOC.com y descubre una de las casas en arriendo que tenemos disponibles en Ñuñoa. Más información al entrar aquí!" name="description"/>
<Meta content="Arriendos de casas y propiedades en TOCTOC.com. Busca todas las alternativas de casas y propiedades. @R_233_4045@e con nosotros al hacer clic aquí!" name="description"/>
<Meta content="¿Una casa con patio para tu mascota? ¿Vecinos buena onda? Encuentra las casas en arriendo disponibles en Chillán y cámbiate a la propiedad en donde siempre has querido formar tu futuro." name="description"/>
<Meta content="¿Buscas casas en venta en Puente Alto? Aquí el listado más completo,actualizado diariamente. Grandes ofertas con la información que necesitas" name="description"/>
<Meta content="Ventas de Casa en Quinta normal,una comuna con varias alternativas de ventas de casas. En TOCTOC.com te ayudamos con la mejor opción. @R_233_4045@e más aquí!" name="description"/>
<Meta content="Arriendos de Departamento en Concepción una ciudad reconocidad para la vida familiar. Busca arriendos de departamento en Concepción en TOCTOC.com" name="description"/>
<Meta content="Arriendos de departamentos y propiedades en TOCTOC.com. Busca todas las alternativas de departamentos y propiedades. @R_233_4045@e con nosotros al hacer clic aquí!" name="description"/>
<Meta content="¿Buscas casas en venta en Las Condes? Aquí el listado más completo,actualizado diariamente. Grandes ofertas con la información que necesitas" name="description"/>
<Meta content="¿Buscas departamentos en arriendo en Las Condes ? Revisa en TOCTOC.com el listado de propiedades más completo ¡Y actualizado diariamente!" name="description"/>
<Meta content="Arriendos de Departamentos en Providencia. En TOCTOC.com tenemos varias alternativas de arriendos de departamentos en Providencia. Haz clic aquí!" name="description"/>
<Meta content="Revisa el listado y encuentra las casas en ventas que se encuentran disponibles en Chillán para que hagas tu sueño de la casa propia una realidad. " name="description"/>
<Meta content="¿Buscas departamentos en venta en Ñuñoa? Aquí el listado más completo,actualizado diariamente. Grandes ofertas con la información que necesitas" name="description"/>
<Meta content="¿Buscas casas en arriendo en Providencia? Revisa en TOCTOC.com el listado de propiedades más completo ¡Y actualizado diariamente!" name="description"/>
<Meta content="¿Buscas casas en arriendo en Talagante? Aquí el listado completo,actualizado diariamente. Grandes ofertas con la información que necesitas." name="description"/>
<Meta content="Venta de Casas y propiedades en Buin que tiene una de las mejores calidades de ambientes para vivir. Venta de Casas en Buin con TOCTOC.com!" name="description"/>
<Meta content="Venta de departamentos en Santiago Centro. Propiedades actualizadas,departamentos nuevos y usados." name="description"/>
<Meta content="Arriendos de Local Comercial en Providencia,una de las mejores comunas para arrendar un local comercial. Busca en TOCTOC.com la variedad de alternativas. Más detalles aquí!" name="description"/>
<Meta content="Arriendos de Departamentos en Maipú,si un espacio para comenzar tu nueva etapa,en TOCTOC.com busca arriendos de Departamentos en Maipú. Detalles aquí!" name="description"/>
<Meta content="Venta de Casas y propiedades en Maipú,con TOCTOC podrás encontrar todas las anternativas de arriendos de casas en Maipú. @R_233_4045@e más aquí!" name="description"/>
<Meta content="Arriendos de Departamento en La Florida,para iniciar una nueva etapa de vida mas independiente,busca arriendos de departamentos en La Florida con TOCTOC.com" name="description"/>
<Meta content="Ventas de Departamentos en Las Condes. Con alto estándar en diseño,calidad y terminaciones. Los Departamentos en las Condes incluyen una maravillosa vista." name="description"/>
<Meta content="¿Buscas departamentos en venta en Vitacura? Revisa aquí el listado más completo ¡Y actualizado diariamente! Ingresa aquí y encuentra lo que andas buscando." name="description"/>
<Meta content="¿Buscas casas en venta en Vita

我的问题是..

  • 如何通过有用的剪贴方式获取html? (ctrl + shift + i)
  • wireshark为什么没有检测到HTTP数据包?
  • 正在发送该软件包但未被检测到还是python正在以某种方式屏蔽它?
  • python如何发送请求?
  • 可以强制将请求协议设为http吗?
  • 我是因为标题问题而获取错误的html还是与它们无关?

我知道我的问题可能很难回答,对此我感到抱歉,但是互联网协议并不是我的强项(wireshark也不是),我需要一些帮助或指导以完全理解它。我将不胜感激。

Ps:我还尝试使用带有此代码的Selenium和firefox插件获取数据(驱动程序在同一文件夹中)

from bs4 import BeautifulSoup
from selenium.webdriver import Firefox
import os as os

url = "https://www.toctoc.com/Arriendo/departamento/?dormitoriodesde=0&dormitoriohasta=5&banosdesde=0&banoshasta=5&superficeDesde=&superficiehasta=&moneda=2&preciodesde=&preciohasta=&ordenarpor=relevantes&cargarmas=1&tipoOperacion=0"

with Firefox(os.path.join('D:',os.sep,'Users','JPablo','Desktop','Nueva carpeta')) as driver:
    driver.get(url)
    element = driver.find_element_by_xpath('//*')
    element = element.get_attribute('innerHTML')
    soup = BeautifulSoup(element,'html.parser')
    print(soup.prettify())

可悲的是,我得到的HTML与请求相同。

谢谢。

解决方法

您可以通过刮擦ID为script的{​​{1}}标签来获取结果数据。它提供了您可以解析以获取列表的json数据。

以下代码抓取脚本标记,解析JSON并将数据放入数据框:

react-engine-props

Try this on repl.it

输出:

import requests
from bs4 import BeautifulSoup
import json
import pandas as pd

r = requests.get("https://www.toctoc.com/Arriendo/departamento/",params = {
        "dormitoriodesde": 0,"dormitoriohasta": 5,"banosdesde": 0,"banoshasta": 5,"superficeDesde": "","superficiehasta": "","moneda": 2,"preciodesde": "","preciohasta": "","ordenarpor": "relevantes","cargarmas": 1,"tipoOperacion": 0
    })

soup = BeautifulSoup(r.text,"html.parser")
data = json.loads(soup.find("script",{"id": "react-engine-props"}).text)
df = pd.DataFrame(data["dataListado"]["resultados"]["propiedades"])

print(df)