get all username from a text
时间: 2024-05-15 18:18:25 浏览: 110
Sure, to get all usernames from a text, you can use regular expressions. Here's an example code in Python:
```python
import re
text = "Hey @jack, did you see @jane's tweet? @jill mentioned you too!"
usernames = re.findall(r'@\w+', text)
print(usernames) # prints ["@jack", "@jane", "@jill"]
```
This code uses the `re.findall()` function to find all occurrences of a username, which is defined as a string starting with "@" followed by one or more word characters (`\w+`). You can modify this regular expression to suit your needs, for example, to include usernames with dots, dashes, or other special characters.
相关问题
import requests from bs4 import BeautifulSoup # 目标网页的URL url = "https://item.jd.com/100016034394.html" # 发送HTTP请求获取网页内容 response = requests.get(url) html = response.text # 使用BeautifulSoup解析HTML soup = BeautifulSoup(html, "html.parser") # 查找评论数据所在的元素或标签 comments = soup.find_all("商品评论", class_="comment") # 遍历评论数据并提取内容 for comment in comments: username = comment.find("span", class_="username").text content = comment.find("p", class_="content").text print(f"Username: {username}") print(f"Comment: {content}") print("-----------------------------------") 改了网址,既不报错也不打印
根据你提供的代码,我注意到你将目标网页的URL设置为了京东商品详情页的URL,并尝试使用BeautifulSoup来解析网页内容。然后,你试图使用find_all方法来查找评论数据所在的元素或标签,并遍历这些评论数据并提取内容。
然而,根据你提供的代码,有几个问题需要注意:
1. 在find_all方法中,你使用了`"商品评论"`作为标签名进行查找。通常情况下,标签名是HTML元素的名称,例如`<div>`、`<p>`等。如果你想查找评论数据所在的特定标签,可以更改为合适的标签名。
2. 在find_all方法中,你使用了`class_="comment"`作为class属性的条件进行查找。请确保该属性值与目标网页中评论数据所在元素的class属性值一致。如果不一致,你需要更新为正确的class属性值。
3. 在代码的最后,你尝试打印提取的评论内容。但是,你并没有获取到正确的评论数据元素,因此不会有任何打印输出。
为了能够正常提取评论数据,请确保以下几点:
1. 确认目标网页中评论数据所在的具体元素或标签,并将其正确地传递给find_all方法。
2. 检查目标网页中评论数据所在元素的class属性值,并将其正确地传递给find_all方法。
3. 确保目标网页的URL是有效的,并且可以成功获取到网页内容。
如果你需要更多帮助,请提供更多关于目标网页结构和评论数据所在位置的信息,或者提供更多相关的代码。这样我就能够更具体地指导你进行修改。
import requests from lxml import etree import pandas as pd username_list=[] film_critic_list=[] useful_num_list=[] useless_num_list=[] assess_list=[] ttt_all_urls = [] for i in range(191): ttt_page_urls = f'https://movie.douban.com/subject/26430107/reviews?sort=hotest&start={i * 20}' headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.41'} rq=requests.get(url=ttt_page_urls,headers=headers) dom1 = etree.HTML(rq.text) ttt_data = dom1.xpath('//*[@id="content"]/div/div[1]/div[1]/div/@data-cid') for i in ttt_data: a=dom1.xpath(f'//*[@id={i}]/div/h2/a/@href') ttt_all_urls.extend(a) for url1 in ttt_all_urls: for i in ttt_data: rq2 = requests.get(url=url1,headers=headers) dom2=etree.HTML(rq2.text) username= dom2.xpath(f'//*[@id={i}]/header/a[1]/span/text()') print(username) film_critic = dom2.xpath(f'//*[@id="link-report-{i}"]/div[1]/p/text()') useful_num = dom2.xpath(f'*[@id="review-{i}-content"]/div[3]/button[1]/text()') useless_num= dom2.xpath(f'*[@id="review-{i}-content"]/div[3]/button[2]/text()') assess = (dom2.xpath('//*[@id="content"]/div/div[1]/h1/span/text()')) username_list.extend(username) film_critic_list.extend(film_critic) useful_num_list.extend(useful_num) useless_num_list.extend(useless_num) assess_list.extend(assess) data={'username':username_list,'film_critic':film_critic_list,'useful_num':useful_num_list,'useless_num':useless_num_list,'assess':assess_list} df=pd.DataFrame(data) df.to_csv('fimldata.csv',encoding='utf-8',index=None)
这段代码的功能是爬取豆瓣电影《太空悍将》的影评信息,并将爬取到的数据保存到名为"fimldata.csv"的CSV文件中。具体来说,代码先构造了每一页的URL地址,然后通过requests库发送请求获取HTML页面。接着,使用lxml库中的etree模块对HTML页面进行解析,提取出每条影评的URL地址,并将这些地址保存到一个列表中。接下来,遍历所有影评的URL地址,再次使用requests和etree库对每个影评页面进行解析,提取出影评的作者、影评内容、有用数、无用数以及对应的电影名称。最后,将这些数据存储到一个字典中,并使用pandas库将字典转换为DataFrame格式后保存到CSV文件中。
阅读全文