学习Python并尝试通过使用正则表达式从HTML页面获取用户ID。 (LTT是网站,仅用于练习)。
我希望能够在cmd中键入“ findID 用户名”并返回6位ID号。
已经花了几个小时尝试不同的代码并查找引用,也许有人可以为我解释一下它。我可以配置searchRegex对象以正确识别页面中的6位数字,但是找不到我要寻找的正确6位数字组合。 (与另外6个特定的用户ID数字相对应,另外随机获得6个数字)
import re, requests, sys, time
if len(sys.argv)>1:
search=requests.get('https://linustechtips.com/main/search/?&q='+str(sys.argv[1:])+'&type=core_members')
searchRegex=re.compile(r"^'$\d\d\d\d\d\d^'$")
ID=searchRegex.search(search.text)
print(ID)
time.sleep(10)
else:
print('Enter a search term...')
我尝试了多种不同的方法来使代码识别'符号。但是当我这样尝试时,返回None
。正则表达式为什么能找到6位数字,却找不到以'开头和结尾的6位数字。
这是我正在对其进行测试的HTML页面。
view-source:https://linustechtips.com/main/search/?&q=missiontomine&type=core_members
答案 0 :(得分:0)
尝试使用正则表达式:(?<=profile\/)\d{6}
html文本中的userid作为url的一部分,例如:
https://linustechtips.com/main/profile/600895-missiontomine/?do=hovercard
(?<=profile\/)
令人反感