如何在Python 3中隔离HTML页面的一部分

时间:2016-07-17 11:02:11

标签: html python-3.x text

我制作了一个简单的脚本来检索页面的源代码,但我希望"隔离" ips的一部分,以便我可以保存到proxy.txt文件。有什么建议吗?

import urllib.request

sourcecode = urllib.request.urlopen("https://www.inforge.net/xi/threads/dichvusocks-us-15h10-pm-update-24-24-good-socks.455588/")
sourcecode = str(sourcecode.read())
out_file = open("proxy.txt","w")
out_file.write(sourcecode)
out_file.close()

2 个答案:

答案 0 :(得分:1)

为什么不使用重新? 我需要源代码来确切地说明如何。

答案 1 :(得分:1)

我在您的代码中添加了几行代码,唯一的问题是UI版本(检查页面源代码)是作为IP地址添加的。

import urllib.request
import re

sourcecode = urllib.request.urlopen("https://www.inforge.net/xi/threads/dichvusocks-us-15h10-pm-update-24-24-good-socks.455588/")
sourcecode = str(sourcecode.read())
out_file = open("proxy.txt","w")
out_file.write(sourcecode)
out_file.close()

with open('proxy.txt') as fp:
    for line in fp:
        ip = re.findall('(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', line)

for addr in ip:
    print(addr)

<强>更新 这就是你要找的东西,BeatifulSoup只能使用CSS类从页面中提取我们需要的数据,但它需要用pip安装。您不需要将页面保存到文件中。

from bs4 import BeautifulSoup
import urllib.request
import re

url = urllib.request.urlopen('https://www.inforge.net/xi/threads/dichvusocks-us-15h10-pm-update-24-24-good-socks.455588/').read()
soup = BeautifulSoup(url, "html.parser")

# Searching the CSS class name
msg_content = soup.find_all("div", class_="messageContent")

ips = re.findall('(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', str(msg_content))

for addr in ips:
    print(addr)