我无法执行以下操作:
from scrapy.selector import Selector
Run Code Online (Sandbox Code Playgroud)
错误是:
文件"/Desktop/KSL/KSL/spiders/spider.py",第1行,来自scrapy.selector import Selector ImportError:无法导入名称Selector
好像LXML没有安装在我的机器上,但确实如此.另外,我认为这是scrapy内置的默认模块.也许不吧?
思考?
我有一个.csv文件,其中包含第一列中的用户名.它们采用FirstName LastName的形式.我想获取FirstName并将LastName的第一个字符添加到其上,并删除该空格.然后我想添加@ someemailaddress.com.
这是一个例子:
这就是我所拥有的:
DisplayName, OtherColumn
Sam Jones, otherdata
Paul Jones, otherdata
Run Code Online (Sandbox Code Playgroud)
这就是我要的:
DisplayName, OtherColumn
SamJ@someemailaddrses.com, otherdata
PaulJ@someemailaddress.com, otherdata
Run Code Online (Sandbox Code Playgroud)
想法?
我正在使用scrapy,我想通过www.rentler.com.我去了网站搜索了我感兴趣的城市,这里是搜索结果的链接:
https://www.rentler.com/search?Location=millcreek&MaxPrice=
Run Code Online (Sandbox Code Playgroud)
现在,我感兴趣的所有列表都包含在该页面上,我希望逐个递归地逐步执行它们.
每个列表都列在:
<body>/<div id="wrap">/<div class="container search-res">/<ul class="search-results"><li class="result">
Run Code Online (Sandbox Code Playgroud)
每个结果都有一个 <a class="search-result-link" href="/listing/288910">
我知道我需要为crawlspider创建一个规则并让它查看该href并将其附加到url.这样它就可以进入每个页面,并获取我感兴趣的数据.
我想我需要这样的东西:
rules = (Rule(SgmlLinkExtractor(allow="not sure what to insert here, but this is where I think I need to href appending", callback='parse_item', follow=true),)
Run Code Online (Sandbox Code Playgroud)
更新 *感谢您的输入.这是我现在拥有的,它似乎运行但不刮:*
import re
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from KSL.items import KSLitem
class KSL(CrawlSpider):
name = "ksl"
allowed_domains = ["https://www.rentler.com"]
start_urls = ["https://www.rentler.com/ksl/listing/index/?sid=17403849&nid=651&ad=452978"]
regex_pattern = '<a href="listing/(.*?) class="search-result-link">'
def parse_item(self, response):
items …
Run Code Online (Sandbox Code Playgroud) python ×2
csv ×1
lxml ×1
macos ×1
powershell ×1
recursion ×1
scrapy ×1
web-crawler ×1
web-scraping ×1