我正在做我的第一步在网络抓取,并希望从Pornhub获得视频数据。
在第一步中,我浏览了主页上的所有页面,并收集了视频链接。这是有效的,我得到了一个约100 k链接的csv。如果我将这些链接复制/粘贴到浏览器,这些链接可以正常工作。但是,当我用我的脚本查看它们以获得我想要的值时,它总是将我重定向到一个Cornhub视频(我知道这是不久前愚人节的一个笑话)。因此,我的请求似乎被重定向了,但我不知道这是如何发生的,也不知道我是否能做些什么。
‘与open("links.csv","r")作为f: line= csv.reader(f)
for adress in lines:
data = []
print(data)
headers = ({'User-Agent':
'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'})
sleep(randint(2,5))
html = requests.get(adress[0], headers=headers)
soup = BeautifulSoup(html.text, features="html.parser")
print(soup)
views = soup.find("script", type="application/ld+json")
json_data = json.loads(views.contents[0])
interaction_stat = json_data["interactionStatistic"]
views = int(interaction_stat[0]
["userInteractionCount"].replace(",", ""))
duration = int(
soup.find("meta", property="video:duration").get("content"))
upload_date = datetime.datetime.strptime(
json_data["uploadDate"][0:10], '%Y-%m-%d').date()
video_id = soup.find("form", id="shareToStream")
video_id = video_id.find("input", id="attachment").get("value")
data.append(video_id)
data.append(upload_date)
data.append(views)
data.append(duration)
with open("data.csv", "a", newline="") as f: # Das hier über die schleife um es nur einmal zu machen
writer = csv.writer(f)
writer.writerow(data)
“”“
发布于 2022-09-13 08:44:14
您的标题确实很旧,但是工作得很好。可能要确保您的IP交替使用,或者在随后的请求之前花一些时间。
import requests
from bs4 import BeautifulSoup
import json
lines = [
"XX62f79e2ed1ed8",
"XX63078405e84b6",
]
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Host": "www.pornhub.com",
"Refer": "https://www.pornhub.com/",
}
with requests.Session() as s:
for line in lines:
soup = (
BeautifulSoup(s.get(line, headers=headers).text, features="html.parser")
.find("script", type="application/ld+json")
)
json_data = (
json
.loads(soup.getText())
['interactionStatistic'][0]['userInteractionCount']
)
print(json_data)
对于我使用过的视频,输出如下:
3,339,324
384,482
https://stackoverflow.com/questions/73699619
复制相似问题