我有一个非常简单的webscrape代码,但是它太长了。在我设置超时之前,我等待了30多分钟,但它仍然没有返回任何内容。现在我设置了300秒的超时,它总是给我一个错误消息“读取操作超时”。 我正在使用Jupyter笔记本,并尝试使用Edge、Chrome和Opera作为我的浏览器,但没有任何效果。我可以向你保证,我的互联网很好,因为当我在网络浏览器中打开URL时,它会加载
import bs4
import pandas as pd
from bs4 import BeautifulSoup as bssoup
import urllib.request
import re
hotel_reviewnames2 = []
hotel_review2 = []
for i in range (7,9):
urlp1 = 'https://www.tripadvisor.com.ph/Hotel_Review-g298459-d3914035-Reviews-or'
urlp2 = '-Park_Inn_by_Radisson_Davao-Davao_City_Davao_del_Sur_Province_Mindanao.html#REVIEWS/robots.txt'
realurl = str(urlp1+str(i*5)+urlp2)
print (realurl)
hp6 = urllib.request.urlopen(realurl, timeout = 300)
soup6 = bssoup (hp6, 'html.parser')
hotelreviewsDavaonames3 = soup6.find_all('a', class_='ui_header_link bPvDb')
hotelreviewsDavao3 = soup6.find_all('div', class_='pIRBV _T')
for x in hotelreviewsDavaonames3:
hotel_reviewnames2.append(x.text.split())
for y in hotelreviewsDavao3[1::2]:
hotel_review2.append(y.text.split('\n'))
df4 = pd.DataFrame({
'Reviewer_Name':hotel_reviewnames2,
'Reviews':hotel_review2
})
print (df4)
你正在(可能)做的事是被TripAdvisor "Terms and Conditions"禁止的
如果URL在您的web浏览器中工作,而不是在web scraper中工作,则他们可能正在使用未指定的“技术手段”来区分您的scraper请求与常规(合法)web请求,并对您的请求进行黑洞处理
我的建议是停止
如果你成功地绕过了这个障碍,他们可能会用其他方式来阻止你,可能升级为“停止”信件和诉讼。(或者他们可以玩真的下流的…)
斯蒂芬C所说的,这可能是有问题的。未经同意进行刮擦通常是不明智的
话虽如此,我相信刮痧总是会发生的,打败那些试图阻止你的人是很有趣的
我不完全确定你提到的课程的要求是什么,但也许可以研究一下硒。这是一个python包,有一个很好的教程here。它创建了一个真实的浏览器,可以用cookies模拟真实用户,并可能欺骗网站
或者,您可以查看是否可以将某些头添加到urllib.request以模拟实际的浏览器。我知道requests库添加了这些,但不确定urllib.requests是否有类似
headers = { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "Accept-Encoding": "gzip, deflate", "Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8", "Dnt": "1", "Host": [INSERT SPECIFIC URLHOST], "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", }
的方法资料来源:在一家搜集了大量公开数据的公司实习,有人试图拖我们的后腿。我的一个同事也用selenium打败了captchas
相关问题 更多 >
编程相关推荐