from scrapy.selector import Selector
# scrapy 的选择器支持 css和xpath选择。下面是css选择器。如果你了解前端JQuery的知识,
# 会发现
t1 = Selector(text=html).css('span.red::text').extract() # class 用点
print(t1) # ['item1']
t2 = Selector(text=html).css('span::text').extract() # 所有span 的内容
print(t2) # ['item1','item2']
t3 = Selector(text=html).css('span#s1::text').extract() # id 用#
print(t3) # ['item2']
t4 = Selector(text=html).css('div>div>span::text').extract() # div 里边 span
print(t4) # ['item2']
# 方法二:使用bs4
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
s1 = soup.find('span', attrs={"class": "red"}) # 查找span class为red的字符串
s2 = soup.find_all("span") # 查找所有的span
result = [span.get_text() for span in s2]
print(result) # ['item1', 'item2']
1、正则表达式获取<td></td>标签之间的内容
如:<td class="label">行政相对人名称:</td> 获取 行政相对人名称:
Name= re.findall('<td class="label">(.*?)</tb>',text)[0]
# python 爬取<span></span>中间标签的内容html = """<div> <span class='red'>item1</span> <div> <span id='s1'>item2</span> </div></...
要获
取
HTML 中所有 <span>
标签
中的
内容
,可以使用
Python
中的 Beautiful Soup 库。以下是一个示例代码片段:
from bs4 import BeautifulSoup
# 假设 HTML 代码保存在变量 html 中
html = '<div><span>foo</span><span>bar<...
标签
必须是封闭的,
标签
由自封闭的和半封闭的
半封闭:成对出现的,如,第一个
标签
是开始,第二个是结束,结束的
标签
带有斜杠
自封闭:单独出现的
标签
,如,等
标签
属性:控制
标签
的显示,高度、宽度、颜色等,
标签
可以没有属性(就是不写)
有些
标签
的属性自带一些特殊效果,有些没有
标签
语法:
内容
部分
在pycharm编辑器中,找到一行
内容
ctrl+/就能注释,...
这篇文章主要是介绍
Python
爬
取
网页信息时,经常使用的正则表达式及方法。它是一篇总结性文章,实用性比较大,主要解决自己遇到的
爬
虫问题,也希望对你有所帮助~
当然如果会Selenium基于自动化测试
爬
虫、BeautifulSoup分析网页DOM节点,这就更方便了,但本文更多的是介绍基于正则的底层
爬
取
分析。
涉及
内容
如下:
常用正则表达式
爬
取
网页信息及HTML分析总结
1.获
取
<t...
html = req.text
soup = BeautifulSoup(html,'lxml')
job_name = soup.select('.new_job_name span')[0].string
job_company = soup.select('
之前 BeautifulSoup 的用法,这个已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法。如果大家对 BeautifulSoup 使用不太习惯的话,可以尝试下 Xpath
w3c http://www.w3school.com.cn/xpath/index.asp
pip install lxml
XPa...
tags = sel.xpath('//div[contains(@class,"goodsItem")]/a/img/@src|//div[@class="goodsItem"]/a/@href').extract()
2获
取
文本值:
tags = sel.xpath("//div[@class='goodsItem']/font/text()").extract()
CSS选择器:
1获
取
属性值:
<meta http-equiv="Content=-Type" content="text/html; charset=utf-8"/>
<link href="http://192.167.1.101/hint.css" rel="stylesheet"></link>
</head>
<body>[talkid:137031381]2014年4月20日 03:55:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 我们已经是dffwerwer天吧!
()</p>
[talkid:137031382]2014年4月22日 04:45:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 音频 :[<a href="files/24434sfsfsjdfrhf_n.m4a"]>音频</a>
()</p>
[talkid:137031383]2014年4月23日 04:55:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 图片 :[<a href="files/f/f123ftrtrhf_n.jpg"]>图片</a>
()</p>
[talkid:137031384]2014年4月24日 05:55:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 我们已方式方法方式
()</p>
[talkid:137031385]2014年4月25日 06:55:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 我而对方是否的天吧!
()</p>
</body>
</html>
利用
python
爬
虫,提
取
源代码字符串,并从每行body中
爬
取
[<a href=后的链接地址,如果没有则将该行链接地址设置为NONE
您可以使用
Python
的正则表达式模块re来提
取
源代码字符串并从每行body中
爬
取
链接地址。下面是一个示例代码,演示如何使用
Python
爬
虫提
取
源代码字符串并从每行body中
爬
取
链接地址:
```
python
import re
html = '''
<meta http-equiv="Content=-Type" content="text/html; charset=utf-8"/>
<link href="http://192.167.1.101/hint.css" rel="stylesheet"></link>
</head>
<body>[talkid:137031381]2014年4月20日 03:55:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 我们已经是dffwerwer天吧!
()</p>
[talkid:137031382]2014年4月22日 04:45:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 音频 :[<a href="files/24434sfsfsjdfrhf_n.m4a"]>音频</a>
()</p>
[talkid:137031383]2014年4月23日 04:55:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 图片 :[<a href="files/f/f123ftrtrhf_n.jpg"]>图片</a>
()</p>
[talkid:137031384]2014年4月24日 05:55:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 我们已方式方法方式
()</p>
[talkid:137031385]2014年4月25日 06:55:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 我而对方是否的天吧!
()</p>
</body>
</html>
# 提
取
链接地址的正则表达式
link_regex = r'<a href="([^"]+)">'
# 提
取
源代码字符串
source_code = re.findall(r'<body>(.*?)</body>', html, re.DOTALL)[0]
# 从每行body中
爬
取
链接地址
links = re.findall(link_regex, source_code)
links = [link if link.startswith('http') else 'NONE' for link in links]
print(links)
运行以上代码,将会输出链接地址的列表,如果没有链接地址,则将该行链接地址设置为"NONE"。您可以根据需要进行进一步的处理或保存。希望能对您有所帮助!