php正则函数抓取网页连接( 这是小白我第一次写博客,也是第一次了首页的部分URL(CSDN自行忽略…))

优采云 发布时间: 2022-03-18 10:20

  php正则函数抓取网页连接(

这是小白我第一次写博客,也是第一次了首页的部分URL(CSDN自行忽略…))

  使用正则表达式和urllib库实现CSDN爬取

  这是我第一次给小白写博客,也是第一次写爬虫。我爬取了CSDN主页的一些网址(CSDN自己忽略了...)。简单记录一下过程。

  重新图书馆

  re 库(正则表达式)是一个非常有用的模块,用于在 python3 中匹配文本。以下是re的使用规范。

  

  

  

  另外一个很重要的就是区分正则表达式中的()、[]、{}及其作用。关联:

  源网络,使用 urllib.requests

  url.requests 为python提供了比较完善的网页内容爬取功能。

  url.requests.Requests(URL, data) 可以向 URL网站 发送请求,数据作为请求的头部内容发送。参数还有很多,不知道怎么用,就不多说了。url.requests.urlopen(respond)用于读取网站返回的内容,但是返回格式是http.client.HTTPResponse,所以我们需要使用read()方法读取url.requests.urlopen (回应)内容。但同时,我们还需要对读取的内容进行解码。大多数编码形式都是“utf-8”,但也有个别情况。在这种情况下,可以使用 python chardet 库来检测和确定编码格式。

  respond = urllib.request.Request(targetUrl)

respond = urllib.request.urlopen(respond) # http.client.HTTPResponse

content = respond.read()

content = content.decode("utf-8")

  最后部分

  为了把爬取的内容放到txt文件中,我使用open函数来实现这个功能。

  预定义:

  import re

import urllib.request

url = "https://blog.csdn.net/nav/python"

href = open("href", "w+")

html = open("html", "r")

  之后找到正确的URL地址,发现大部分都是

  这是我们想要的 URL,所以我们可以将正则表达式写为 'https?: ///\w+?/article/details/[0-9]+'

  def get_href(html):

content = html.read()

link = re.compile(r'https?:\/\/blog.csdn.net\/\w+?\/article\/details\/[0-9]+').findall(content)

for i in link:

href.write(i)

href.write("\n")

return href

  re.conpile() 函数用于定义正则表达式的匹配格式,从而匹配爬取的html中想要的URL。fillall() 函数遍历整个 html 并搜索所有成功匹配的内容。

  最终代码

  import re

import urllib.request

url = "https://blog.csdn.net/nav/python"

href = open("href", "w+")

html = open("html", "r")

def get_href(html):

content = html.read()

link = re.compile(r'https?:\/\/blog.csdn.net\/\w+?\/article\/details\/[0-9]+').findall(content)

for i in link:

href.write(i)

href.write("\n")

return href

get_href(html)

def clear_href():

href = open("href", "r+")

list = []

content = href.read()

content = content.split("\n")

for i in content:

if i not in list:

list.append(i)

for i in list:

href1.write(i+"\n")

return href1

clear_href()

  这是所有最终代码。用不了多少时间,就简单记录一下,方便以后回忆,也希望别人能从中受益。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线