数据采集中 爬取豆瓣网站源码 然后用etree转换 再用xpath获取电影名称 评分以及超链接
时间: 2024-10-21 22:02:46 浏览: 40
Python 爬取豆瓣电影Top250
数据采集过程中,爬取豆瓣网站的源码通常涉及网络爬虫技术。首先,你需要使用Python的requests库来发送HTTP请求并获取网页HTML内容。然后,你可以利用lxml或者BeautifulSoup等库,如`etree`(ElementTree),来解析HTML文档,它提供了一种结构化的XML或HTML解析方式。
对于etree,你可以通过`from lxml import etree`导入模块,接下来使用`etree.HTML(html_content)`将HTML字符串转化为Element对象,可以对这个元素树进行遍历。要获取电影名称、评分和链接,可以按照XPath表达式选择相应的节点:
例如,假设电影名称在`<div class="title">`标签内,评分在`<span class="rating_num">`标签下,链接可能是`<a href="/movie/(电影ID)">`的形式,你可以编写这样的XPath表达式:
```python
# 获取电影名称
name_xpath = './/div[@class="title"]/text()'
# 获取评分
score_xpath = './/span[@class="rating_num"]/text()'
# 获取电影链接
link_xpath = './/a[starts-with(@href, "/movie/")]/@href'
# 使用etree查找并提取信息
tree = etree.HTML(response.text)
name = tree.xpath(name_xpath)[0]
score = tree.xpath(score_xpath)[0].strip() # 可能需要去除多余的空白字符
link = tree.xpath(link_xpath)[0]
print("电影名称:", name)
print("评分:", score)
print("电影链接:", link)
```
请注意,实际的XPath表达式可能会因豆瓣网站的具体HTML结构变化而调整。在抓取网站数据时,还需要遵守网站的robots.txt规定,并尊重版权法律。同时,频繁的爬取可能会导致IP被封禁,因此建议设置合理的间隔时间(sleep)和错误处理机制。
阅读全文