智能文章采集(1.检查页面是否由javascript生成2.检查提交的字段)
优采云 发布时间: 2022-02-17 21:18智能文章采集(1.检查页面是否由javascript生成2.检查提交的字段)
在这一章中,我认为最重要的是“看起来像一个人”这句话。一般网站不会阻碍人的正常操作。如何让 网站 将您的操作视为正常?行动才是重点。
主要说4种方法:
调整标题
处理 Cookies
时间就是一切
常见的表单安全特性--注意表单的提交内容
调整标题
你可以通过这个网站查看你的header信息,这是我浏览器的信息。
User-Agent是最常见的检测,可以通过以下代码指定:
#1-headers.py<br />
import requests<br />
from bs4 import BeautifulSoup<br />
session = requests.Session()<br />
headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5)<br />
AppleWebKit 537.36 (KHTML, like Gecko) Chrome",<br />
"Accept":"text/html,application/xhtml+xml,application/xml;<br />
q=0.9,image/webp,*/*;q=0.8"}<br />
url = "https://www.whatismybrowser.com/<br />
developers/what-http-headers-is-my-browser-sending"<br />
req = session.get(url, headers=headers)<br />
bsObj = BeautifulSoup(req.text)<br />
print(bsObj.find("table",{"class":"table-striped"}).get_text)<br />
处理 Cookies
您可以通过Chrome插件查看和修改您的cookie:Edit-ThisCookie
#2-seleniumCookies.py.txt<br />
from selenium import webdriver<br />
driver = webdriver.PhantomJS(executable_path='')<br />
driver.get("http://pythonscraping.com")<br />
driver.implicitly_wait(1)<br />
print(driver.get_cookies())<br />
savedCookies = driver.get_cookies()<br />
driver2 = webdriver.PhantomJS(executable_path='')<br />
driver2.get("http://pythonscraping.com")<br />
driver2.delete_all_cookies()<br />
for cookie in savedCookies:<br />
driver2.add_cookie(cookie)<br />
driver2.get("http://pythonscraping.com")<br />
driver.implicitly_wait(1)<br />
print(driver2.get_cookies())
时间就是一切
模拟人体操作,最重要的是人体运动不会那么快,使用睡眠
time.sleep(3)
Common Form Security Features(识别表单的一些安全属性)
为了防止蠕虫,一些网站提交表单使用了一些特殊的方法(可以使用Chrome的Networkinspector查看):
1.隐藏的输入字段值收录随机值
2.避免蜜罐
例如:使用不可见的形式。如果用户提交表单,爬虫会被识别,IP可以被屏蔽等等。
最后,这里是一个清单,以避免爬虫的爬取陷阱:
1.检查页面是否由javascript生成
2.检查提交的表单是否收录所有应提交的字段,包括隐藏字段
您可以使用 Chrome 的 Networkinspector 进行检查
3.如果在某些网站上无法维持会话,请注意cookies