我正在尝试从VM抓取预订,但没有得到与本地计算机相同的响应。查询如下:
scrapy shell --set="ROBOTSTXT_OBEY=False" -s USER_AGENT="Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0" "https://www.booking.com/hotel/fr/le-transat-bleu.fr.html?aid=304142;label=gen173nr-1FCAEoggJCAlhYSDNiBW5vcmVmaE2IAQGYAQ3CAQp3aW5kb3dzIDEwyAEM2AEB6AEB-AELkgIBeagCAw;sid=746d95cb38d6de7fbb5a878954481e7b;all_sr_blocks=33843609_122840412_1_2_0;checkin=2019-03-17;checkout=2019-03-18;dest_id=-1424668;dest_type=city;dist=0;group_adults=1;group_children=0;hapos=1;highlighted_blocks=33843609_122840412_1_2_0;hpos=1;req_adults=1;req_children=0;room1=A%2C;sb_price_type=total;sr_order=popularity;srepoch=1550502677;srpvid=26936aca347f0334;type=total;ucfs=1&#hotelTmpl"
当我从我的VM运行查询时,我得到的响应具有与查询中URL相同的URL,而从VM得到一个通用响应:
https://www.booking.com/hotel/fr/le-transat-bleu.fr.html
我必须提到,在添加USER_AGENT部分之前,即使在本地计算机上,我也得到相同的答案。
此外,如果我使用链接(来自虚拟机的命令行浏览器),则会得到正确的响应。因此,它似乎并非来自我使用的VM的公共IP。
我怀疑booking.com
可能还会使用另一种信息来防止对USER_AGENT
和robot.txt
文件顶部的某些页面进行爬网,但是我不知道哪个一个。
本地请求标头
{b'Accept': b'text/html,application/xhtml+xml,application/xml;q=0.9,*/*; q=0.8', b'Accept-Language': b'en', b'User-Agent': b'Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0', b'Accept-Encoding': b'gzip,deflate'}
VM请求标头
{b'Accept': [b'text/html,application/xhtml+xml,application/xml;q=0.9,*/*; q=0.8'], b'Accept-Language': [b'en'], b'User-Agent': [b'Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0'], b'Accept-Encoding': [b'gzip,deflate'], b'Cookie': [b'bkng=11UmFuZG9tSVYkc2RlIyh9Yaa29%2F3xUOLbXpFeYC4TUhBTLg%2BWRWQhTWxLpR01uuU40DSTIBsY%2F5OusQaibxVABBhdPCiYlEsnGLdmcDyD%2BtWFGVlewF8Fo59TLNV6vs0R1Ypha9MOkYUl6wASmexLrJie%2F3imTygdbEEsnB0sv0m%2B%2FJ1C6Cm42FEFBT222yQ7']}
没有cookie的VM请求
scrapy shell --set="COOKIES_ENABLED=False" --set="ROBOTSTXT_OBEY=False" -s USER_AGENT="Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0" "https://www.booking.com/hotel/fr/le-transat-bleu.fr.html?aid=304142;label=gen173nr-1FCAEoggJCAlhYSDNiBW5vcmVmaE2IAQGYAQ3CAQp3aW5kb3dzIDEwyAEM2AEB6AEB-AELkgIBeagCAw;sid=746d95cb38d6de7fbb5a878954481e7b;all_sr_blocks=33843609_122840412_1_2_0;checkin=2019-03-17;checkout=2019-03-18;dest_id=-1424668;dest_type=city;dist=0;group_adults=1;group_children=0;hapos=1;highlighted_blocks=33843609_122840412_1_2_0;hpos=1;req_adults=1;req_children=0;room1=A%2C;sb_price_type=total;sr_order=popularity;srepoch=1550502677;srpvid=26936aca347f0334;type=total;ucfs=1&#hotelTmpl"
不包含Cookie的VM请求标头
{b'Accept': [b'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'], b'Accept-Language': [b'en'], b'User-Agent': [b'Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0'], b'Accept-Encoding': [b'gzip,deflate']}