minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Preliminares:
1. Quer ver algumas fotos que vão fazer você não conseguir dormir na calada da noite, mas não tem recursos...
2. Você deseja comprar passagens de trem rapidamente durante a alta temporada durante as férias?
3. Ao fazer compras online, você deseja localizar com rapidez e precisão os produtos com melhor reputação e qualidade?
O que é um rastreador:
- Ao escrever um programa, simule o processo de um navegador navegando na Internet e, em seguida, deixe-o rastrear dados da Internet.
O valor do rastreador:
-Aplicações práticas
-Emprego
Os rastreadores são legais ou ilegais?
não é proibido por lei
Risco de infringir a lei
Répteis bons, répteis maliciosos
Os riscos trazidos pelos rastreadores podem ser refletidos nos dois aspectos a seguir:
-Os rastreadores interferem no funcionamento normal dos sites visitados
-Os rastreadores capturam tipos específicos de dados ou informações protegidos por lei
Como evitar o azar de ter problemas ao usar um rastreador?
- Otimize frequentemente os seus próprios programas para evitar interferir no funcionamento normal dos sites visitados
- Ao usar e divulgar os dados rastreados, revise o conteúdo rastreado. Se for encontrado conteúdo confidencial, como segredos comerciais relacionados ao usuário, o rastreamento ou a disseminação deverão ser interrompidos em tempo hábil.
Classificação de crawlers em cenários de uso
-Rastreador universal:
Uma parte importante do sistema de rastreamento. O que é capturado é uma página inteira de dados.
-Foco em rastreadores:
Ele é construído com base em um rastreador universal. O que é capturado é o conteúdo parcial específico da página.
- Rastreador incremental:
Detecte atualizações de dados no site. Somente os dados atualizados mais recentes do site serão rastreados.
Lança e Escudo Reptiliano
Mecanismo anti-escalada
Os sites de portal podem impedir que os rastreadores rastreiem os dados do site, formulando estratégias ou meios técnicos correspondentes.
Estratégia anti-anti-escalada
O programa rastreador pode quebrar o mecanismo anti-rastreamento do site do portal, formulando estratégias ou meios técnicos relevantes, de forma a obter as informações do portal.
Protocolo robots.txt: +/robots.txt pode ser visto em qualquer site
Acordo de cavalheiros. Ele estipula quais dados do site podem ser rastreados por rastreadores e quais dados não podem ser rastreados.
protocolo HTTP
- Conceito: É uma forma de interação de dados entre o servidor e o cliente.
Informações comuns do cabeçalho da solicitação: Identidade do transportador da solicitação
- User-Agent:Connection: Após a conclusão da solicitação, seja para desconectar ou manter a conexão
Informações comuns do cabeçalho de resposta
-Content-Type: O tipo de dados que o servidor responde ao cliente
Protocolo https: - Protocolo seguro de transferência de hipertexto (segurança)
Criptografia
Criptografia de chave simétrica
Criptografia de chave assimétrica
Criptografia de chave de certificado
- import requests
-
- # 检查当前脚本是否作为主程序运行
- if __name__ == "__main__":
- # 定义 KFC 官方网站获取门店列表信息的 URL
- url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx'
-
- # 定义 HTTP 请求的头部信息,模拟浏览器请求
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0'
- }
-
- # 提示用户输入一个位置信息,作为搜索门店的关键词
- keyword = input('enter location:') # 例如 "北京"
-
- # 循环请求第1页到第9页的数据
- for page in range(1,10):
- # 定义发送请求时所需的参数
- params = {
- 'op': 'keyword', # 操作类型为关键词搜索
- 'cname': '', # 城市名称(此处为空)
- 'pid': '', # 其他参数(此处为空)
- 'keyword': keyword, # 用户输入的关键词
- 'pageIndex': page, # 当前请求的页面索引
- 'pageSize': 1000, # 每页显示的门店数量
- }
-
- # 尝试发送请求并处理响应
- try:
- # 发送 GET 请求,请求参数包括 URL、参数和头部信息
- response = requests.get(url=url, params=params, headers=headers)
-
- # 检查响应状态码,如果不是 200,将引发 HTTPError 异常
- response.raise_for_status()
-
- # 获取响应内容
- page_text = response.text
-
- # 构建文件名,包括关键词、页码和 .html 扩展名
- filename = f'{keyword}_page_{page}.html'
-
- # 打开一个文件,以写入模式打开,并指定编码为 utf-8
- with open(filename, 'w', encoding='utf-8') as fp:
- # 将响应内容写入到文件中
- fp.write(page_text)
-
- # 打印一条消息,表明文件已经成功保存
- print(f'{filename} 保存成功!!!')
-
- # 捕获由 requests 库抛出的任何异常
- except requests.RequestException as e:
- # 打印异常信息
- print(f'请求错误: {e}')