วิธีการบล็อกแมงมุม baidu


15

การเยี่ยมชมส่วนใหญ่ของฉันมาจากแมงมุม baidu ฉันไม่คิดว่ามันจะช่วยให้เครื่องมือค้นหาเลยดังนั้นฉันจึงคิดว่าจะบล็อกพวกเขาอย่างไร สิ่งนี้สามารถทำได้ผ่าน iptables? ฉันใช้ nginx เป็นเว็บเซิร์ฟเวอร์ของฉัน


2
ทำไมฉันไม่ควร ฉันไม่ต้องการปริมาณการใช้ภาษาจีน
Zhianc

6
ฉันไม่ได้บอกว่าคุณไม่ควรฉันกำลังถามว่าทำไมตื๊อเลย พวกเขาทำร้ายคุณในทางใดทางหนึ่งหรือไม่? การเพิกเฉยมันง่ายกว่าไหม? "ไม่ต้องการให้การจราจรของจีน" ไม่ใช่คำตอบที่นี่จริงๆ และการบล็อกเครื่องมือค้นหาหนึ่งอันนั้นแทบจะไม่เหมือนกับการปิดกั้นภาษาจีนดังนั้นคุณจึงไม่สมเหตุสมผล ดูเหมือนว่าคุณอาจกำลังมองหาวิธีการแก้ปัญหาจากปัญหาที่ผิดพลาด แต่เห็นได้ชัดว่าคุณเพียงต้องการที่จะบล็อกแมงมุมบางอย่างโดยพลการดังนั้นไปข้างหน้าฉันเดา
Su '

7
@Su 'ฉันพบว่าแมงมุม baidu คลานไปบนเว็บไซต์ของฉันอย่างแรงทำให้เกิดอัพสำหรับการรับส่งข้อมูลที่ถูกกฎหมาย นอกจากนี้ฉันยังพบว่าแมงมุม baidu ไม่ปฏิบัติตามrobots.txtกฎ
starbeamrainbowlabs

2
ฉันได้รับความนิยมประมาณ 1-2 ครั้งต่อวินาทีจากสไปเดอร์ Baidu การเข้าชมแต่ละครั้งจะสร้างไฟล์เซสชันใหม่บนเซิร์ฟเวอร์ของฉัน ฉันมีสคริปต์สำหรับลบไฟล์เซสชั่นเหล่านั้น แต่สไปเดอร์เหล่านั้นยังโอเวอร์โหลดเซิร์ฟเวอร์ MySQL ของฉันด้วย ฉันต้องการบล็อกพวกเขาอย่างแน่นอน
Buttle Butkus

2
สามารถยืนยันได้ว่า baiduspider หรือบางสิ่งที่วางตัวเป็น baiduspider จะตระเวนไซต์อย่างผิดจรรยาบรรณและละเว้นคำสั่ง robots.txt
JMC

คำตอบ:


8

ใน robots.txt ของคุณเพิ่ม

#Baiduspider
User-agent: Baiduspider
Disallow: /

#Yandex
User-agent: Yandex
Disallow: /

5
ถ้าพวกเขาไม่เคารพ robots.txt ล่ะ
Zhianc

5
ฉันรู้ว่าการเข้าถึง "Baiduspider / 2.0" จากที่อยู่ IP ของจีนไม่เป็นไปตาม robots.txt บนเว็บไซต์ของฉัน นอกจากนี้พวกเขามักใช้การเข้าถึงแบบมีส่วนร่วม (ห่างกันไม่กี่นาที) จากบล็อกที่อยู่ IP เดียวกันซึ่งไม่ได้ใช้ ID ตัวแทนผู้ใช้
mgkrebbs

ยานเดกซ์เชื่อฟัง robots.txt ฉันให้พวกเขาถูกล็อคจนเรารู้ว่าธุรกิจของเรามาจากรัสเซียและต้องถอดบล็อกออก ไป่ตู้คุณต้องตรวจสอบ netblock ไม่ใช่ Baidu ทั้งหมดที่ประกาศว่า UA นั้นเป็น Baidu จริง ๆ ดังนั้นคุณต้องทำการบล็อก robots.txt สำหรับปริมาณการใช้งาน Baidu ที่ถูกต้องตามกฎหมายและจากนั้นทำการบล็อกสตริง UA ใน. htaccess ของคุณสำหรับสิ่งที่เหลืออยู่และทำให้ชีวิตของคุณทำบล็อกโดย ส่วนที่เหลือที่อยู่รอบบล็อกสตริง UA มันทำงานได้ดีพอ ๆ กับการเพิ่มปริมาณเซิร์ฟเวอร์ของคุณเพื่อรับส่งข้อมูล
Fiasco Labs

2
ฉันมีUser-agent: *และเข้าถึง baiduspider อย่างต่อเนื่อง
reinierpost

3
ยานเดกซ์เป็นเครื่องมือค้นหาที่แตกต่างกันสำหรับตลาดรัสเซียดังนั้นเพียงรวมไว้ที่นี่เมื่อคำถามไม่ได้ถามเลยและไม่มีการเขียนอะไรเกี่ยวกับมันเลย
นักสะสม

7

ฉันเพิ่งบล็อกตัวค้นหาภาษาจีนสำเร็จไม่ให้Baiduspiderเข้าถึงเนื้อหาใด ๆ บนไซต์ของฉัน ฉันตัดสินใจที่จะทำเพราะเหตุผลดังต่อไปนี้

เหตุผลในการตัดสินใจบล็อก

  1. ประมาณทุก ๆ 20 คำขอไปยังเซิร์ฟเวอร์ของฉันมาจากบ็อต baidu นี่คือพฤติกรรมที่ไม่สุภาพ Baidubot คิดเป็น 5% ของการใช้แบนด์วิดท์ของเว็บไซต์
  2. ฉันใช้ความพยายามอย่างมากในการรักษาทรัพยากรบนไซต์ของฉันให้เล็กและใช้ประโยชน์จากเทคโนโลยีเช่นการแคชของเบราว์เซอร์เพื่อให้ได้ชัยชนะเล็กน้อยในความเร็วและแบนด์วิดท์ มันเป็นเหตุผลที่จะต้องพิจารณาการเพิ่มขึ้น 5% โดยการปิดกั้น Baidubot
  3. ความเป็นไปได้ของการสูญเสียปริมาณการใช้ภาษาจีนเป็นความเสี่ยงที่ยอมรับได้สำหรับธุรกิจเนื่องจากเนื้อหาของเว็บไซต์นั้นมีความเฉพาะเจาะจงทางภูมิศาสตร์ในสหราชอาณาจักรไม่มีภาษาจีนและมีรายได้จากการโฆษณาที่กำหนดเป้าหมายในตลาดสหราชอาณาจักร

ดังนั้นฉันหวังว่าซูและคนอื่น ๆ ที่มีความกังวลเกี่ยวกับซีโนโฟเบียจะเข้าใจว่าการตัดสินใจครั้งนี้เป็นการตอบสนองต่อคำขอที่ไม่น่าสนใจจำนวนมาก

วิธี

Baiduspider เข้าถึงเซิร์ฟเวอร์ของฉันโดยใช้ที่อยู่ IP ที่แตกต่างกัน แต่ที่อยู่เหล่านี้อยู่ในช่วงที่กำหนด ดังนั้นไฟล์. htaccess ของฉันจึงมีบรรทัดต่อไปนี้:

order allow,deny 
allow from all
# Block access to Baiduspider 
deny from 180.76.5.0/24 180.76.6.0/24 123.125.71.0/24 220.181.108.0/24 

บรรทัดล่างอธิบายโดยทั่วไปคือช่วง IP 4 ช่วงที่ฉันรู้ Baiduspider และ Baiduspider เข้าถึงเซิร์ฟเวอร์ของฉันเท่านั้น แต่ละช่วง 4 ช่วงเป็น 256 ที่อยู่ติดกัน (รวม 1024 รายการ) โปรดทราบว่าไวยากรณ์สำหรับช่วง IP ในdeny from...บรรทัดอาจสร้างความสับสนได้มากหากคุณยังไม่ได้อ่านในช่วง CIDR เพียงแค่ทำความเข้าใจว่า0/24หมายถึงช่วง 256 ขนาดเริ่มต้นจาก 0 ดังนั้น180.76.5.0/24จริงหมายถึงทุกคนที่อยู่ IP ระหว่างและ180.76.5.0 180.76.5.255ใช่ไม่ชัดเจนโดยเฉพาะ! แต่ถ้าคุณต้องการเรียนรู้ว่าทำไมหรือเพียงแค่รู้สึกสับสนไปที่http://www.mediawiki.org/wiki/Help:Range_blocks

สรุป

อินเทอร์เน็ตควรเป็นอิสระเปิดกว้างและยุติธรรม แต่นั่นหมายถึงองค์กรเช่น Baidu เรียนรู้ที่จะเชื่อฟัง Robots.txt และโลภน้อยลงเมื่อมีการรวบรวมข้อมูลเป็นประจำ โซลูชันของฉันเกี่ยวข้องกับการตั้งค่าที่มีประสิทธิภาพมากดังนั้นก่อนที่คุณจะยุ่งกับไฟล์. htaccess โปรดสำรองข้อมูลดั้งเดิมของคุณพร้อมที่จะย้อนกลับหากคุณลบเซิร์ฟเวอร์ของคุณด้วยเปลวไฟแห่งความรุ่งโรจน์ ดำเนินการด้วยความเสี่ยงของคุณเอง


บล็อกที่อยู่ IP ของพวกเขาอาจมีการเปลี่ยนแปลงดังนั้นจึงต้องใช้เวลาในการบำรุงรักษาเพื่อเวลา
asgs

5

คุณสามารถใช้คำสั่งต่อไปนี้robots.txtเพื่อไม่อนุญาตให้รวบรวมข้อมูลเว็บไซต์ของคุณ

# robots.txt
User-agent: Baiduspider
Disallow: /

อย่างไรก็ตามโปรแกรมรวบรวมข้อมูลอาจตัดสินใจเพิกเฉยต่อเนื้อหาของ robots.txt ของคุณ ยิ่งกว่านั้นไฟล์สามารถถูกแคชโดยเอ็นจินการค้นหาและใช้เวลาก่อนที่การเปลี่ยนแปลงจะมีผล

วิธีที่มีประสิทธิภาพมากที่สุดคือการใช้ความสามารถของเซิร์ฟเวอร์ของคุณ เพิ่มกฎต่อไปนี้ในnginx.confไฟล์ของคุณเพื่อบล็อก Baidu ที่ระดับเซิร์ฟเวอร์

if ($http_user_agent ~* ^Baiduspider) {
  return 403;
}

อย่าลืมรีสตาร์ทหรือโหลด Nginx ใหม่เพื่อใช้การเปลี่ยนแปลง


3

เพิ่งตัดสินใจบล็อก Baidu เนื่องจากปริมาณการรับส่งข้อมูลที่เราให้นั้นมีน้อยมากสำหรับการสแกนเชิงรุกของพวกเขา นอกจากนี้ตอนนี้พวกเขาเรียกใช้ตัวแทนที่ปลอมตัวเป็นเบราว์เซอร์และเปิดตัวรหัส JavaScript (เช่น Google Analytics) และทำให้สถิติของเรายุ่งเหยิง

เวอร์ชันที่ดีกำลังอัปเดต robots.txt ของคุณด้วยสิ่งต่อไปนี้

User-agent: Baiduspider
Disallow: /
User-agent: Baiduspider-video
Disallow: /
User-agent: Baiduspider-image
Disallow: /

แต่เมื่อพิจารณาสิ่งที่ผู้อื่นเขียนที่นี่และพวกเขาใช้ตัวแทนผู้ใช้ที่ซ่อนสถานะของพวกเขาฉันจะบล็อกที่อยู่ IP ของพวกเขาทั้งหมด ต่อไปนี้เป็นวิธีการทำใน nginx

# Baidu crawlers
deny 123.125.71.0/24;
deny 180.76.5.0/24;
deny 180.76.15.0/24;
deny 220.181.108.0/24;

2

โซลูชัน Wordpress (ไม่ใช่วิธีที่ดีที่สุด แต่ช่วยได้)

ปัญหาเดียวกันกับแมงมุม Biadu ที่ก้าวร้าวที่กล่องของฉันติดอันดับ 35 ในคอนโซลของฉันโดยใช้อันดับต้น ๆ เห็นได้ชัดว่าแม้แต่คอมพิวเตอร์ที่รวดเร็วไม่สามารถจัดการกับคำขอภายนอกที่ทำงานอย่างมีประสิทธิภาพที่ 35 ...

ฉันติดตามจำนวน IP (จากอาคารมหาวิทยาลัย ????) เป็นหลายร้อยโดยมีผู้ใช้สองคนเป็นหลัก)

ผลที่ตามมาโดยตรง? เนื่องจากฉันมีเซิร์ฟเวอร์คลาวด์ฉันจึงต้องอัพเกรดหน่วยความจำเดียวกันให้สูงขึ้นเพื่อให้สามารถตอบสนองต่อการตัดสินใจได้

คำตอบก่อนหน้า:

#Baiduspider
User-agent: Baiduspider
Disallow: /

ดูเหมือนว่า Baidu ไม่สามารถเคารพข้อบ่งชี้ของ robot.txt ได้ทั้งหมด

ฉันทำอะไรลงไป:

ฉันติดตั้งปลั๊กอิน WP-Ban สำหรับ Wordpress (ฟรี) และห้ามต่อไปนี้:

ตัวแทนผู้ใช้:

  • Baiduspider+(+http://www.baidu.com/search/spider.htm)

  • Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

นอกจากนี้การใช้ Wp Super Cache ฉันส่งหน้าข้อผิดพลาดสัมพัทธ์ไปยังหน้าคงที่ดังนั้นการติดตั้ง wordpress ทั้งหมดไม่ได้ / หรืออย่างน้อยก็เฉพาะสำหรับผู้ใช้ที่ถูกแบนต้องตรวจสอบ Mysql datatable

(นี่คือมาตรฐาน Wordpress blablabla ดังนั้นทุกคนสามารถติดตั้งปลั๊กอิน Wordpress สามารถทำได้โดยไม่ต้องมีการเข้ารหัสหรือการเข้าถึง ftp สำหรับขั้นตอนนี้)

ฉันเห็นด้วยกับทุกคน: อินเทอร์เน็ตฟรีห้ามใครก็ตามหรืออะไรก็ตามที่เป็นสิ่งสุดท้ายที่ทุกคนควรทำ แต่วันนี้ Baidoo มีค่าใช้จ่ายฉัน USD 40 ต่อเดือนต่อเดือนเพียงแค่แมงมุมเว็บที่เขียนด้วยภาษา Portughese และฉันสงสัยว่ามีอะไรบ้าง คนจีนและผู้เยี่ยมชมจำนวนมากสามารถอ่านและเข้าใจภาษานี้ได้


1

คุณสามารถบล็อกโดยที่อยู่ IP โดยใช้ngx_http_access_moduleของ nginx หากต้องการบล็อก IP เดียวคุณสามารถเพิ่มบรรทัดลงในไฟล์ conf เช่น

deny 12.34.567.1;

ในการบล็อกช่วงให้ใช้สัญกรณ์CIDRเช่น12.34.567.1/24บล็อกซับเน็ต 24 บิต (จากที่อยู่ IP 256 แห่ง) ซึ่งรวมที่อยู่ IP 12.34.567.1 ดูรายละเอียดเพิ่มเติมได้ที่หน้านี้


1

ใช้. htaccess ด้วย

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Baidu [NC]
RewriteRule .*  - [L,F]

"RewriteEngine On" ช่วยให้คุณสามารถแยกวิเคราะห์บรรทัดต่อไปนี้ได้อย่างถูกต้อง HTTP_USER_AGENT เป็นบรรทัดที่สไปเดอร์ระบุตนเอง เงื่อนไขเป็นจริงถ้าบรรทัดมี "MJ12bot" หรือ "Baidu" NC หมายถึง "ไม่ต้องตรงตามตัวพิมพ์ใหญ่ - เล็ก" และคุณสามารถเชื่อมโยงเงื่อนไขกับ OR บรรทัดสุดท้ายต้องไม่มี "หรือ" มิฉะนั้นกฎจะไม่ทำงาน

ไป่ตู้เป็นที่น่ารังเกียจโดยเฉพาะอย่างยิ่งเพราะพยายามอ่านรายการ Wordpress ("fckeditor", "wp-content") ซึ่งไม่มีเหตุผลอย่างแน่นอน MJ12bot เป็นหนึ่งในสัตว์เลื้อยคลานที่ไม่ดีเช่นกัน

กฎการเขียนซ้ำหมายถึงปิดกั้นเดอร์ด้วย 403 สิ่งต้องห้าม ([F]) เพื่อเข้าถึงไฟล์ทั้งหมด (. * เป็นนิพจน์ปกติสำหรับไฟล์ใด ๆ ) และหยุดการประเมินเพิ่มเติม ([L]) ของ htaccess


1
FธงหมายถึงLเพื่อให้คุณไม่จำเป็นต้องชัดเจนรวมถึงLธงที่นี่ นอกจากนี้รูปแบบเช่นเป็นเช่นเดียวกับเพียง^.*Baidu Baidu
MrWhite
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.