城南彼岸花复开 发表于 2021-5-15 11:13

python爬虫小问题

大佬们爬虫爬到这种数据如何筛选不必要的信息啊,比如前面那个/ur如何去掉?
上图是抓取简洁页面的爬虫,直接定位所以比较简单。
如果要抓取一个房屋页面的详细信息然后获取下一个物品的url进行抓取需要改进什么呢?求大佬指教{:301_975:}

a8730151a 发表于 2021-5-15 11:26

我一般用正则表达式去除字符串中不需要的内容~

no-problem 发表于 2021-5-15 11:29

xpath筛选内容灰常好用然后用古老的方法split法      简单除暴不饶脑   

pangpang02 发表于 2021-5-15 11:30

你这个是因为中文被转义了,我建议先把这个网页的格式格式化一下

ZY.Zhang 发表于 2021-5-15 11:40

本帖最后由 ZY.Zhang 于 2021-5-15 11:46 编辑

import requests
from lxml import etree


if __name__ == '__main__':
    headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
    }
    url = 'https://cs.zu.fang.com/'
    page_text = requests.get(url = url,headers = headers).text
    tree = etree.HTML(page_text)
    dl_list = tree.xpath('//*[@id="listBox"]/div/dl')
    fp = open('ershoufang.txt','w',encoding = 'utf-8')
    for dl in dl_list:
      title = dl.xpath('./dd/p/a/text()')
      fp.write(title + '\n\n')
print('---------------Over!------------------')


继续想获取每个房源的具体信息的话,直接取a标签的href属性,前边补充链接即可

洛言 发表于 2021-5-15 12:29

这是被转义了
可以解码

str.decode("unicode_escape") 就行了
如果是 \x 这种,一般为 UTF-8
具体看看什么编码

城南彼岸花复开 发表于 2021-5-15 22:22

a8730151a 发表于 2021-5-15 11:26
我一般用正则表达式去除字符串中不需要的内容~

试过了,然而beautiful的类型是bs4.element.ResultSet不是字符串,就不知道如何匹配了{:301_1005:}

城南彼岸花复开 发表于 2021-5-15 22:23

pangpang02 发表于 2021-5-15 11:30
你这个是因为中文被转义了,我建议先把这个网页的格式格式化一下

beautifulsoup好像就是把网站转义(似乎)

城南彼岸花复开 发表于 2021-5-15 22:24

ZY.Zhang 发表于 2021-5-15 11:40
import requests
from lxml import etree



emmm,报错了,是哪里出问题了吗

ZY.Zhang 发表于 2021-5-15 23:08

城南彼岸花复开 发表于 2021-5-15 22:24
emmm,报错了,是哪里出问题了吗

我这边没问题,你复制代码是不是出现问题了
页: [1] 2
查看完整版本: python爬虫小问题