내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
전희:
1. 한밤중에 잠을 못 이루게 만드는 사진을 보고 싶지만 자원이 없나요?
2. 여행 성수기인 연휴 기간에 기차표를 빨리 구매하고 싶으신가요?
3. 온라인 쇼핑 시 최고의 평판과 품질을 자랑하는 제품을 빠르고 정확하게 찾고 싶으신가요?
크롤러란 무엇입니까?
- 프로그램을 작성하여 브라우저가 인터넷을 서핑하고 인터넷에서 데이터를 크롤링하는 과정을 시뮬레이션합니다.
크롤러의 가치:
-실용적인 적용
-고용
크롤러는 합법인가요, 불법인가요?
법으로 금지되어 있지는 않습니다
법률 위반 위험
좋은 파충류 악성 파충류
크롤러로 인해 발생하는 위험은 다음 두 가지 측면에서 반영될 수 있습니다.
- 크롤러는 방문한 웹사이트의 정상적인 작동을 방해합니다.
- 크롤러는 법으로 보호되는 특정 유형의 데이터 또는 정보를 캡처합니다.
크롤러를 사용할 때 문제가 발생하는 불운을 피하는 방법은 무엇입니까?
- 방문한 웹사이트의 정상적인 작동을 방해하지 않도록 자신의 프로그램을 자주 최적화하십시오.
- 크롤링된 데이터를 사용 및 유포할 때 크롤링된 콘텐츠를 검토하고, 사용자와 관련된 영업 비밀 등 민감한 콘텐츠가 발견되면 적시에 크롤링 또는 유포를 중지해야 합니다.
사용 시나리오에서 크롤러 분류
-범용 크롤러:
크롤링 시스템의 중요한 부분입니다. 캡처되는 것은 전체 데이터 페이지입니다.
- 크롤러에 중점을 둡니다.
Universal Crawler를 기반으로 제작되었습니다. 캡처되는 내용은 페이지의 특정 부분 콘텐츠입니다.
-증분 크롤러:
웹사이트에서 데이터 업데이트를 감지합니다. 웹사이트에서 최신 업데이트된 데이터만 크롤링됩니다.
파충류 창과 방패
등반 방지 메커니즘
포털 웹사이트는 해당 전략이나 기술적 수단을 마련하여 크롤러가 웹사이트 데이터를 크롤링하는 것을 방지할 수 있습니다.
등반 반대 전략
크롤러 프로그램은 관련 전략이나 기술적 수단을 마련하여 포털 웹사이트의 크롤링 방지 메커니즘을 깨뜨려 포털 정보를 얻을 수 있습니다.
robots.txt 프로토콜: +/robots.txt는 모든 웹사이트에서 볼 수 있습니다.
신사의 동의. 이는 웹사이트에서 크롤러가 크롤링할 수 있는 데이터와 크롤링할 수 없는 데이터를 규정합니다.
http 프로토콜
- 개념 : 서버와 클라이언트 간의 데이터 상호작용 형태이다.
공통 요청 헤더 정보: 요청 캐리어의 ID
- User-Agent:Connection : 요청 완료 후 연결을 끊을지, 유지할지 여부
일반적인 응답 헤더 정보
-Content-Type: 서버가 클라이언트에 응답하는 데이터 유형
https 프로토콜:- 보안 하이퍼텍스트 전송 프로토콜(보안)
암호화
대칭 키 암호화
비대칭 키 암호화
인증서 키 암호화
- 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}')