所以我的问题是,我想从聊天中获取用户的id信息。
我要找的聊天室,看上去是这样的.
<div id="chat_area" class="chat_area" style="will-change: scroll-position;">
<dl class="" user_id="asdf1234"><dt class="user_m"><em class="pc"></em> :</dt><dd id="1">blah blah</dd></dl>
<a href="javascript:;" user_id="asdf1234" user_nick="asdf1234" userflag="65536" is_mobile="false" grade="user">asdf1234</a>
...
我想做的是,
获取以<a href='javascript:'' user_id='asdf1234' ...
开头的部分
这样我就可以解析这个并做一些其他的事情。
但是这个网页是我目前正在使用的页面,它不能成为代理()。
我如何从聊天中提取这些数据?
发布于 2022-12-03 19:59:15
看上去你有两个不同的问题。我会同时使用请求和BeautifulSoup库来完成这一任务。
使用浏览器的开发工具“网络”选项卡刷新页面并查找使用所需HTML响应的请求。使用请求库准确地模拟此请求。
import requests
headers = {"name": "value"}
# Get case example.
response = requests.get("some_url", headers=headers)
# Post case example.
data = {"key": "value"}
response = requests.post("some_url", headers=headers, data=data)
网络抓取总是很挑剔的,如果这不起作用,你很可能需要使用一个请求会话。或者,一次性的黑客解决方案就是从浏览器中设置cookie。
一旦您提出请求,您就可以使用BeautifulSoup轻松地刮取您的用户id。
from bs4 import BeautifulSoup
# Create BS parser.
soup = BeautifulSoup(response.text, 'lxml')
# Find all elements with the attribute "user_id".
find_results = soup.findAll("a", {"user_id" : True})
# Iterate results. Could also just index if you want the single user_id.
for result in find_results:
user_id = result["user_id"]
发布于 2022-12-03 20:01:49
为了从聊天区域提取数据,您需要使用web抓取工具或库。由于您提到不能使用像Selenium这样的代理,所以您可能需要考虑使用像Python或JavaScript这样的编程语言中的库来刮取聊天区域的数据。
例如,在Python中,您可以使用BeautifulSoup解析页面的HTML并提取所需的信息。然后,您可以使用user_id值来执行您需要做的任何进一步处理。
或者,如果您能够访问页面的服务器端代码,您可以修改它以更容易访问的方式包含user_id信息,例如在聊天区域元素本身的数据属性中。这将允许您使用user_id轻松地检索JavaScript值,而不必刮页。
https://stackoverflow.com/questions/74672630
复制相似问题